np.array()和np.asarray()的区别

array和asarray都可以将结构数据转化为ndarray,主要区别是当源数据已经是ndarray类型时,array依然会拷贝一份,而asarray不会;当源数据不是ndarray类型时,两者没有区别(都会拷贝一份)。

例一:

import numpy as np

a=[[1,1,1],[1,1,1]]
b=np.array(a)
c=np.asarray(a)

a[1][1]=2

print(a)
print(b)
print(c)

输出:

[[1,1,1],[1,2,1]]

[[1 1 1]

[1 1 1]]

[[1 1 1]

[1 1 1]]

例二:

import numpy as np

a=np.zeros([2,3])
b=np.array(a)
c=np.asarray(a)

a[1][1]=2

print(a)
print(b)
print(c)

输出:

[[0. 0. 0.]

[0. 2. 0.]]

[[0. 0. 0.]

[0. 0. 0.]]

[[0. 0. 0.]

[0. 2. 0.]]