栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Numpy学习|array和asarray区别

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Numpy学习|array和asarray区别

创建数组功能
  • array
#创建数组
a = np.array([[1,2,3],[4,5,6]])

a_1 = np.array(a)

>>>array([[1, 2, 3],
       [4, 5, 6]]
  • asarray
#创建数组
a = np.array([[1,2,3],[4,5,6]])

a_2 = np.asarray(a) 

>>>array([[1, 2, 3],
       [4, 5, 6]])

结论:

两者在创建数组功能上基本相同

改变或是赋值时 
  • array 
#修改数组中的一个值,看两种生成方式的不同
a[0,0] = 1000

>>>array([[1000,    2,    3],
       [   4,    5,    6]])

>>>a_1
>>>array([[1, 2, 3],
       [4, 5, 6]])

 由输出可以看出,a_1并没有改变。

  • asarray
#修改数组中的一个值,看两种生成方式的不同
a[0,0] = 1000

>>>array([[1000,    2,    3],
       [   4,    5,    6]])

>>>a_2
>>>array([[1000,    2,    3],
       [   4,    5,    6]])

由输出可以看出,a_2发生改变

结论:

  • array为深拷贝
  • asarray为浅拷贝 

深拷贝和浅拷贝:(摘录于百度和csdn)

深拷贝和浅拷贝是针对对象属性为对象的,因为基本数据类型在进行赋值操作时(也就是拷贝)是直接将值赋给了新的变量,也就是该变量是原变量的一个副本,这个时候你修改两者中的任何一个的值都不会影响另一个,而对于对象或者引用数据来说在进行浅拷贝时,只是将对象的引用复制了一份,也就内存地址,即两个不同的变量指向了同一个内存地址,那么在改变任一个变量的值都是该变这个内存地址的所存储的值,所以两个变量的值都会改变。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号