上节中主要介绍了ndarray函数的创建,在示范用例中可以看到打印一个ndarray里面的内容可以直接使用print打印即可,但是有的时候,当矩阵过大时,直接使用print打印并不能将矩阵中的内容全部打印出来,例如

创建一个100*100的随机矩阵,代码如下:

import numpy as npa = np.arange(10000).reshape(100,100)
print(a)

运行结果如下:

[[   0    1    2 ...   97   98   99][ 100  101  102 ...  197  198  199][ 200  201  202 ...  297  298  299]...[9700 9701 9702 ... 9797 9798 9799][9800 9801 9802 ... 9897 9898 9899][9900 9901 9902 ... 9997 9998 9999]]

可以看到当矩阵过大时,并没有打印出每个元素的值,而是之打印出了每列的开始3个元素以及结束的3个像素,以及每行只打印出前3行和后3行,那么问题来了,当矩阵过大时,需要打印出全部矩阵的每个像素的值应该怎么打印?

这就需要用到numpy.set_printoptions()函数,该函数主要在使用print函数之前调用,主要设置数据精度,打印出的数组大小等等功能。

numpy.set_printoptions

在python中的官方文档可以查出其函数API:

numpy.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None, sign=None, floatmode=None, **kwarg)[source]

参数:

precision:可选项,元素的输出精度,默认情况下精度为8位

threshold:可选项,总的元素个数输出限制,默认为1000

edgeitems:可选项,默认情况下每个维度的开始和结束输出多少个,默认情况下为3,当矩阵中的元素数目超过threshold时,将按照ddgeitems中的值输出

linwitdh:可选项,每行的字符个数,默认为75

suppress:可选项,是否采用压缩方式,如果是True,使用定点计数法(fixed point notation)表示浮点数,如果为False,则使用科学技术法来表示浮点数,默认为Flase

nanstr:可选项,使用字符串来表示浮点数,默认为nan

infstr:可选项, 无穷大的浮点使用字符串来表示,默认为inf

sign:可选项, 浮点类型的符号,如果是‘+'代表的是正数,‘’代表一个空格,‘-’代表负数

formatter:可选项,如果不为non,则代表着格式化输出格式。如果类型未指定,则按照默认的格式,可以设置的格式如下:

  • ‘bool’
  • ‘int’
  • ‘timedelta’ : a numpy.timedelta64
  • ‘datetime’ : a numpy.datetime64
  • ‘float’
  • ‘longfloat’ : 128-bit floats
  • ‘complexfloat’
  • ‘longcomplexfloat’ : composed of two 128-bit floats
  • ‘numpystr’ : types numpy.string_ and numpy.unicode_
  • ‘object’ : np.object_ arrays
  • ‘str’ : all other strings

Other keys that can be used to set a group of types at once are:

  • ‘all’ : sets all types
  • ‘int_kind’ : sets ‘int’
  • ‘float_kind’ : sets ‘float’ and ‘longfloat’
  • ‘complex_kind’ : sets ‘complexfloat’ and ‘longcomplexfloat’
  • ‘str_kind’ : sets ‘str’ and ‘numpystr’

    floatmode :控制浮点精度类型,主要由如下:

  • ‘fixed’: Always print exactly precision fractional digits,始终精确打印浮点小数
  • ‘unique’: Print the minimum number of fractional digits necessary:按照需要打印的小数点位数最小, precision 选项被忽略
  • maxprec’: Print at most precision fractional digits, 按照最多的小数点打印,即按照precision 设置的打印,如果该小数可以使用最小的位数能够代表自己唯一,则按照最小的位数打印,有可能打印的小数位数比precision设置的少
  • ‘maxprec_equal’: Print at most precision fractional digits, 按照最多的小数点打印,不会比precision设置的精度少,为默认值,在数组或者矩阵中,如果最多小数位小于precision,但是可以表示出唯一,将使用该小数位定义所有元素的精度。

legacy:可选项,如果设置了‘1.13’则代表了1.13传统打印模式(legacy mode)。如果设置了Flase,则禁止legacy模式 ,在该模式下浮点中的整数空格与0d 数组代表的不同的行为,其他不识别的字符串将被忽略,最新的版本为1.15.0

使用范例:

1:设置打印精度用例,将9位小数点的浮点设置打印成4位,最后一位四舍五入:

import numpy as npnp.set_printoptions(precision=4)
print(np.array([1.123456789]))

运行结果:

[1.1235]

2:一维数组,10个元素,设置threshold为5个,此时打印按照edgeitems:的值默认为3,打印前3个和后3个:

import numpy as npnp.set_printoptions(threshold=5)
print(np.arange(10))

运行结果:

[0 1 2 ... 7 8 9]

3:采用压缩输出:

import numpy as npeps = np.finfo(float).eps
x = np.arange(4.)
b=x**2 - (x + eps)**2
print(b)
print("**************")
np.set_printoptions(suppress=True)
print(b)

运行结果:

[-4.93038066e-32 -4.44089210e-16  0.00000000e+00  0.00000000e+00]
**************
[-0. -0.  0.  0.]

4:输出格式设置用例:

import numpy as npnp.set_printoptions(formatter={'all':lambda x: 'int: '+str(-x)})
x = np.arange(3)
print(x)
print("**************")
np.set_printoptions()
print(x)

运行结果:

[int: 0 int: -1 int: -2]
**************
[0 1 2]

回到开头中的问题,将100*100的矩阵全部输出,代码为:

import numpy as npa = np.arange(10000).reshape(100,100)
np.set_printoptions(threshold=10000)
print(a)

运行结果,由于打印较多只截图一部分:

python numpy Quickstart tutorial之set_printoptions相关推荐

  1. python numpy Quickstart tutorial之ndarray创建

    ndarray是numpy中基础类型,根据官方文档Quickstarttutorialhttps://numpy.org/devdocs/user/quickstart.html支持它是相同数据类型的 ...

  2. cs231n课程资料Python Numpy Tutorial的Python3版本

    cs231n课程资料Python Numpy Tutorial的Python3版本 cs231n课程提供了一个python numpy tutorial的教程,非常不错.之前看过,这些天又想爬虫和数据 ...

  3. [转载] python numpy 总结

    参考链接: Python中的numpy.compress 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想重新回忆下,请看看Python Tutorial. 如果你想要运行教程中的 ...

  4. 初学--Python numpy教程

    本文转载自:http://blog.chinaunix.net/uid-21633169-id-4408596.html 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想重新回忆下 ...

  5. Python NumPy教程

    Welcome to Python NumPy tutorial. In our previous tutorial, we learned about Python switch case. In ...

  6. 【CAD算法】【计算机图形学】Bezier贝塞尔曲线生成程序(python/numpy实现)[1]

    整个项目,从Bezier曲线的创建,到Coons Patch曲面的实现,再到网格的实现和优化,还有最后对表面的光顺,链接如下: [CAD算法][计算机图形学]Bezier贝塞尔曲线生成程序(pytho ...

  7. [Python]numpy数据分析练习[21~30]

    [Python]numpy数据分析练习[21~40] 题目和解析地址 此博客主要用于自己做些知识点笔记 题目和答案 21. 如何在numpy数组中只打印小数点后三位? 只打印或显示numpy数组ran ...

  8. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  9. python numpy 欧氏距离

    python numpy 欧氏距离 import numpy as np a1 = np.arange(5) print(a1) [0 1 2 3 4] a2 = np.arange(5,10) pr ...

最新文章

  1. js 判断 是否为android
  2. 最古老的100个.com域名
  3. 《软件工程方法与实践》—— 导读
  4. 今晚我们通宵学习SpringCloud!涨姿势!
  5. VS.NET 2005 SP1 安装注意
  6. 一棵树,怎么就平衡了(图解AVL+实现)
  7. python读取sql_从python读取sql的实例方法
  8. word List 10
  9. Ajax学习笔记-get请求参数-4
  10. Drools教程 —— 安装及eclipse项目创建
  11. STL两种格式:文本格式与二进制格式
  12. c语言函数实验总结小说,大一上期C语言实验报告7函数
  13. Onedrive 1T|5T 网盘获取
  14. 麦弗逊悬架硬点布置 根据设计输入,布置麦弗逊悬架硬点坐标,匹配转向拉杆断开点,匹配车轮外倾角和前束值,从而获得硬点初版坐标
  15. 抖音app开发时,在录制视频添加背景音乐功能实现流程
  16. android 如何保存网页图片格式,求助,如何在安卓app内嵌的H5页面里长按保存图片?...
  17. svg-icon的使用(将svg转换为icon来使用)
  18. MDN Web Docs
  19. 基于ESP32(Micropython)的天气显示+B站粉丝数显示-v4
  20. RLC串并联谐振回路特性、如何判断容性感性

热门文章

  1. 根据hibernate拦截器实现可配置日志的记录
  2. MySQL数据以全量和增量方式,向ES搜索引擎同步流程
  3. UML类图操作(一)
  4. 电子签名 和 电子证书
  5. 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)
  6. python内置模块 (一)
  7. 正式开始liunx学习之旅
  8. libvirt命令行文档
  9. FAT32和NTFS的区别
  10. 无法向会话状态服务器发出会话状态请求。