对numpy中array和asarray的区别详解
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
举例说明:
importnumpyasnp #example1: 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: [[111] [111] [111]] arr3: [[111] [111] [111]]
可见array和asarray没有区别,都对元数据进行了复制。
importnumpyasnp #example2: arr1=np.ones((3,3)) arr2=np.array(arr1) arr3=np.asarray(arr1) arr1[1]=2 print'arr1:\n',arr1 print'arr2:\n',arr2 print'arr3:\n',arr3
输出:
arr1: [[1.1.1.] [2.2.2.] [1.1.1.]] arr2: [[1.1.1.] [1.1.1.] [1.1.1.]] arr3: [[1.1.1.] [2.2.2.] [1.1.1.]]
此时两者才表现出区别
以上这篇对numpy中array和asarray的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。