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)

输出为:

在这里插入图片描述
而如果原始数据就是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)

输出结果可以看出test2的第三行同样跟着改了

在这里插入图片描述

原文地址:https://www.cnblogs.com/yinyoupoet/p/13287399.html