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连接oracle数据库实例
Oct 17 Python
部署Python的框架下的web app的详细教程
Apr 30 Python
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Python实现的爬虫功能代码
Jun 24 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
用python写爬虫简单吗
Jul 28 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 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
PHP保存带BOM文件的方法
2015/02/12 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
PHP强制转化的形式整理
2020/05/22 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
python统计cpu利用率的方法
2015/06/02 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
python实现石头剪刀布程序
2021/01/20 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
python调用win32接口进行截图的示例
2020/11/11 Python
浅析python连接数据库的重要事项
2021/02/22 Python
Ibatis的核心配置文件都有什么
2014/09/08 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
高中历史教学反思
2014/02/08 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
小学毕业寄语大全
2014/04/03 职场文书
就业协议书怎么填
2014/04/11 职场文书
秋天的图画教学反思
2014/05/01 职场文书
扬尘污染防治方案
2014/06/15 职场文书
征兵宣传标语
2014/06/20 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
房屋转让协议书
2014/10/18 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
初中生物教学反思
2016/02/20 职场文书
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
MySQL批量更新不同表中的数据
2022/05/11 MySQL
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis