首页 > 编程 > Python > 正文

对numpy中array和asarray的区别详解

2020-02-22 23:40:37
字体:
来源:转载
供稿:网友

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

举例说明:

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 

输出:

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没有区别,都对元数据进行了复制。

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 

输出:

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的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表