您的位置:首页 > 编程语言 > Python开发

<Python数据分析>numpy中array和asarray的区别

2018-01-03 16:09 1056 查看
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。

举例说明:

[python] view
plain copy

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  

输出:

[python] view
plain copy

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]]  

可见array和asarray没有区别,都对元数据进行了复制。

[python] view
plain copy

import numpy as np  

  

#example 2:  

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  

输出:

[python] view
plain copy

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.]]  

此时两者才表现出区别

转载自http://blog.csdn.net/gobsd/article/details/56485177
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python numpy