浅谈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实现每次处理一个字符的三种方法
Oct 09 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Python使用字典的嵌套功能详解
Feb 27 Python
python的移位操作实现详解
Aug 21 Python
Django学习之文件上传与下载
Oct 06 Python
在Django中实现添加user到group并查看
Nov 18 Python
python类中super() 的使用解析
Dec 19 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
python3中sys.argv的实例用法
Apr 24 Python
浅析Python迭代器的高级用法
Jul 16 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
PHP中的CMS的涵义
2007/03/11 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
Python运算符重载用法实例
2015/05/28 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
Python多线程扫描端口代码示例
2018/02/09 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
深入学习python多线程与GIL
2019/08/26 Python
python3注册全局热键的实现
2020/03/22 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
采购人员的个人自我评价
2014/01/16 职场文书
《值日生》教学反思
2014/02/17 职场文书
入党群众意见范文
2015/06/02 职场文书