Python打印输出数组中全部元素


Posted in Python onMarch 13, 2018

学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序。

因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或print函数可以答应出数组中的每个元素;

如果数组的容量过大,只能打印出数组的部分元素,打印结果只包含开始部分元素和结尾部分元素,中间元素省略。省略的部分不利于程序的调试;

因此,为了方便调试程序,需要将数组中的元素全部打印出来。

1. 少量元素情况

#打印数组中的元素
import numpy as np
a = np.array(6)
print a

程序结果为:

[0 1 2 3 4 5]

2. 大量元素情况

可以采用 set_printoptions(threshold='nan')

import numpy as np
np.set_printoptions(threshold=np.NaN)
print np.arange(100)
print np.arange(100).reshape(10, 10)

结果为:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]
[[ 0  1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18 19]
 [20 21 22 23 24 25 26 27 28 29]
 [30 31 32 33 34 35 36 37 38 39]
 [40 41 42 43 44 45 46 47 48 49]
 [50 51 52 53 54 55 56 57 58 59]
 [60 61 62 63 64 65 66 67 68 69]
 [70 71 72 73 74 75 76 77 78 79]
 [80 81 82 83 84 85 86 87 88 89]
 [90 91 92 93 94 95 96 97 98 99]]

当array里面的存放的数据维度过大时,在控制台会出现不能将array完全输出的情况,中间部分的结果会用省略号打印出来。这时就需要用到numpy里面的set_printoptions()方法

我们来看一下 set_printoptions 方法的简单说明

set_printoptions(precision=None, 
         threshold=None, 
         edgeitems=None,
         linewidth=None, 
         suppress=None,
         nanstr=None,
         infstr=None,
         formatter=None)

precision:输出结果保留精度的位数

threshold:array数量的个数在小于threshold的时候不会被折叠

edgeitems:在array已经被折叠后,开头和结尾都会显示edgeitems个数

formatter:这个很有意思,像python3里面str.format(),就是可以对你的输出进行自定义的格式化

举例:

precision:

np.set_printoptions(precision=4)
print(np.array([1.23456789]))
>> [ 1.2346] # 最后进位了

threshold:

np.set_printoptions(threshold=10)
print(np.arange(1, 11, 1)) # np.arange(1, 11, 1)生成出来是[1-10],10个数
>> [ 1 2 3 4 5 6 7 8 9 10]
np.set_printoptions(threshold=9)
print(np.arange(1, 11, 1))
>> [ 1 2 3 ..., 8 9 10]

edgeitems:

np.set_printoptions(threshold=5)
print(np.arange(1, 11, 1))
>> [ 1 2 3 ..., 8 9 10]
np.set_printoptions(threshold=5, edgeitems=4)
print(np.arange(1, 11, 1))
>> [ 1 2 3 4 ..., 7 8 9 10]

formatter

np.set_printoptions(formatter={'all': lambda x: 'int: ' + str(-x)})
print(np.arange(1, 5, 1))
>> [int: -1 int: -2 int: -3 int: -4]

这个formatter是一个可调用的字典,'all'是其中一个key,表示里面的x可以包含所有type,还有其他key,具体可以在源码里面查看最后如果只想在代码中的某一部分使用自定义的printoptions,那么可以通过再次调用np.set_printoptions()这个方法来进行reset

Python 相关文章推荐
推荐下python/ironpython:从入门到精通
Oct 02 Python
Python内置函数之filter map reduce介绍
Nov 30 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
python实现textrank关键词提取
Jun 22 Python
详解python 注释、变量、类型
Aug 10 Python
Python实现括号匹配方法详解
Feb 10 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
PO模式在selenium自动化测试框架的优势
Mar 20 Python
python实现学生信息管理系统
Apr 05 #Python
python针对excel的操作技巧
Mar 13 #Python
python实现聊天小程序
Mar 13 #Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 #Python
python实现简易通讯录修改版
Mar 13 #Python
python学生信息管理系统
Mar 13 #Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 #Python
You might like
深入了解php4(1)--回到未来
2006/10/09 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php微信支付之APP支付方法
2015/03/04 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
详解node中创建服务进程
2017/05/09 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python实现音乐下载的统计
2018/06/20 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Python将字典转换为XML的方法
2020/08/01 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
简单说说tomcat的配置
2013/05/28 面试题
《最大的“书”》教学反思
2014/02/14 职场文书
新品发布会主持词
2014/04/02 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python