array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
举例说明:
import numpy as np
#example 1:
data1=[[1,1,1],[1,1,1],[1,1,1]]
arr2=np.array(data1)
arr3=np.asarray(data1)
data1[1][1]=2
print ('data1:\n',data1)
print ('arr2:\n',arr2)
print ('arr3:\n',arr3)
输出:
data1:
[[1, 1, 1], [1, 2, 1], [1, 1, 1]]
arr2:
[[1 1 1]
[1 1 1]
[1 1 1]]
arr3:
[[1 1 1]
[1 1 1]
[1 1 1]]
本文介绍了numpy中array和asarray两个函数的主要区别。当输入数据为列表时两者表现相同;但当输入为ndarray时,array会创建一个副本,而asarray则直接返回原数组。通过示例展示了两者的不同行为。





