arr = np.random.randint(5, size=(3, 2))
arr
# array([[4, 4],
# [2, 0],
# [2, 1]])
arr1 = np.array(arr)
arr2 = np.asarray(arr)
arr[1, 1] = 100
arr
# array([[ 4, 4],
# [ 2, 100],
# [ 2, 1]])
arr1
# array([[4, 4],
# [2, 0],
# [2, 1]])
arr2
# array([[ 4, 4],
# [ 2, 100],
# [ 2, 1]])
从以上结果可以看出:
1、np.array 得到的是副本;修改原 ndarray 时,通过 np.array 得到的新 ndarray 不会受影响
2、np.asarray 得到的是视图;修改原 ndarray 时,通过 np.asarray 得到的新 ndarray 也会随之修改