浅谈numpy中np.array()与np.asarray的区别以及.tolist


Posted in Python onJune 03, 2020

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

1.输入为列表时

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)

浅谈numpy中np.array()与np.asarray的区别以及.tolist

从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式。当输入是列表的时候,更改列表的值并不会影响转化为矩阵的值。

2.输入为数组时

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)

浅谈numpy中np.array()与np.asarray的区别以及.tolist

从上述结果我们可以看出np.array与np.asarray的区别,其在于输入为数组时,np.array是将输入copy过去而np.asarray是将输入cut过去,所以随着输入的改变np.array的输出不变,而np.asarray的输出在变化,并且当我们使用np.asarray改变其类型的时候(输入是float64,改为float32),这样当输入改变的时候,np.asarray的输出也不会改变。

3.array类型转为list类型

a=np.random.random((3,3))
print(a.dtype)
b=a.tolist()
a[1]=2
print(a)
print(b)

浅谈numpy中np.array()与np.asarray的区别以及.tolist

从上述我们可以看到.tolist是将数组转为list的格式,等同于np.array的反向,那什么情况下需要将np.ndarray转为list的格式呢?当需要序列化的时候(serialization),由于np.ndarray是不可序列化的。

补充知识:opencv 将int类型数字转换为固定长度的字符串cv::format

int currentFrame = 2;

stringstream frame_name;
frame_name << cv::format("%.3d",currentFrame) << ".jpg";

或者:

String save_frame_path;
save_frame_path = cv::format("%.3d", frame_num) + ".jpg";

以上这篇浅谈numpy中np.array()与np.asarray的区别以及.tolist就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现Const详解
Jan 27 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
Python中random模块用法实例分析
May 19 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
Python中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
Django后台admin的使用详解
Jul 08 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
在python里创建一个任务(Task)实例
Apr 25 Python
python 字典和列表嵌套用法详解
Jun 29 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 #Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 #Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 #Python
python golang中grpc 使用示例代码详解
Jun 03 #Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 #Python
QML用PathView实现轮播图
Jun 03 #Python
Python基于smtplib协议实现发送邮件
Jun 03 #Python
You might like
第十一节 重载 [11]
2006/10/09 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
aspx中利用js实现确认删除代码
2010/07/22 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
JavaScript实现区块链
2018/03/14 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
Overload和Override的区别
2012/09/02 面试题
电力安全事故反思
2014/04/27 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
成绩单家长意见
2015/06/03 职场文书
二婚主持词
2015/06/30 职场文书