numpy中np.array()与np.asarray的区别以及.tolist
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了numpy中np.array()与np.asarray的区别以及.tolist,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1656字,纯文字阅读大概需要3分钟。
内容图文
![numpy中np.array()与np.asarray的区别以及.tolist](/upload/InfoBanner/zyjiaocheng/1230/acf31d8778784234b21b11d867f6b775.jpg)
array 和 asarray 都可以将 结构数据 转化为 ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
1.输入为列表时
import numpy as np a=[[1,2,3],[4,5,6],[7,8,9]] b=np.array(a) c=np.asarray(a) a[2]=1 print(a) print(b) print(c) """ 运行结果: [[1, 2, 3], [4, 5, 6], 1] [[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6] [7 8 9]] """
从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式。当输入是列表的时候,更改列表的值并不会影响转化为矩阵的值。
2.输入为数组时
import numpy as np a=np.random.random((3,3)) print(a.dtype) b=np.array(a,dtype=‘float64‘) c=np.asarray(a,dtype=‘float64‘) a[2]=2 print(a) print(b) print(c) """ 运行结果: float64 [[0.11294711 0.0957448 0.78717227] [0.69908742 0.78219365 0.34341174] [2. 2. 2. ]] [[0.11294711 0.0957448 0.78717227] [0.69908742 0.78219365 0.34341174] [0.82900099 0.68317933 0.99346798]] [[0.11294711 0.0957448 0.78717227] [0.69908742 0.78219365 0.34341174] [2. 2. 2. ]] """
从上述结果我们可以看出np.array与np.asarray的区别,其在于输入为数组时,np.array是将输入copy过去而np.asarray是将输入cut过去,所以随着输入的改变np.array的输出不变,而np.asarray的输出在变化,
!!!并且当我们使用np.asarray改变其类型的时候(输入是float64,改为float32),这样当输入改变的时候,np.asarray的输出也不会改变。
3.array类型转为list类型
import numpy as np a=np.random.random((3,3)).round(2) print(a.dtype) print(a) b=a.tolist() print("---"*20) a[1]=2 print(a) print(b) """ 运行结果: float64 [[0.29 0.89 0.93] [0.83 0.88 0.49] [0.21 0.48 0.5 ]] ------------------------------------------------------------ [[0.29 0.89 0.93] [2. 2. 2. ] [0.21 0.48 0.5 ]] [[0.29, 0.89, 0.93], [0.83, 0.88, 0.49], [0.21, 0.48, 0.5]] """
从上述我们可以看到.tolist是将数组转为list的格式,等同于np.array的反向,那什么情况下需要将np.ndarray转为list的格式呢?当需要序列化的时候(serialization),由于np.ndarray是不可序列化的。
原文:https://www.cnblogs.com/nbk-zyc/p/13160622.html
内容总结
以上是互联网集市为您收集整理的numpy中np.array()与np.asarray的区别以及.tolist全部内容,希望文章能够帮你解决numpy中np.array()与np.asarray的区别以及.tolist所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。