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
)
输出为:
而如果原始数据就是ndarray型的,那么就有区别了,使用array会开辟一个新空间,而asarray则相当于C语言的指针一样,不创建新的数据对象,而是与原始数据指向同一个值,下面举个栗子
data4
= np
.zeros
((3,3))
test1
= np
.array
(data4
)
test2
= np
.asarray
(data4
)
data4
[2] = 1
print(data4
)
print(test1
)
print(test2
)
输出结果可以看出test2的第三行同样跟着改了