天天看點

numpy的array和asarray

numpy中的array和asarray有細微差别

如果原始資料是python内置的清單類型,比如list,則使用array和asarray是一樣的,都是新開辟了一個空間,比如:

data3 = [1,2,3]
test1 = np.array(data3)
test2 = np.asarray(data3)
print(data3)
print(test1)
print(test2)      

輸出為:

numpy的array和asarray

而如果原始資料就是ndarray型的,那麼就有差別了,使用array會開辟一個新空間,而asarray則相當于C語言的指針一樣,不建立新的資料對象,而是與原始資料指向同一個值,下面舉個栗子

data4 = np.zeros((3,3))
test1 = np.array(data4)
test2 = np.asarray(data4)
# 注意改了data4的第3行
data4[2] = 1
print(data4)
print(test1)
print(test2)