天天看点

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)