python numpy Quickstart tutorial之set_printoptions
上节中主要介绍了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_
andnumpy.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相关推荐
- python numpy Quickstart tutorial之ndarray创建
ndarray是numpy中基础类型,根据官方文档Quickstarttutorialhttps://numpy.org/devdocs/user/quickstart.html支持它是相同数据类型的 ...
- cs231n课程资料Python Numpy Tutorial的Python3版本
cs231n课程资料Python Numpy Tutorial的Python3版本 cs231n课程提供了一个python numpy tutorial的教程,非常不错.之前看过,这些天又想爬虫和数据 ...
- [转载] python numpy 总结
参考链接: Python中的numpy.compress 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想重新回忆下,请看看Python Tutorial. 如果你想要运行教程中的 ...
- 初学--Python numpy教程
本文转载自:http://blog.chinaunix.net/uid-21633169-id-4408596.html 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想重新回忆下 ...
- Python NumPy教程
Welcome to Python NumPy tutorial. In our previous tutorial, we learned about Python switch case. In ...
- 【CAD算法】【计算机图形学】Bezier贝塞尔曲线生成程序(python/numpy实现)[1]
整个项目,从Bezier曲线的创建,到Coons Patch曲面的实现,再到网格的实现和优化,还有最后对表面的光顺,链接如下: [CAD算法][计算机图形学]Bezier贝塞尔曲线生成程序(pytho ...
- [Python]numpy数据分析练习[21~30]
[Python]numpy数据分析练习[21~40] 题目和解析地址 此博客主要用于自己做些知识点笔记 题目和答案 21. 如何在numpy数组中只打印小数点后三位? 只打印或显示numpy数组ran ...
- dataframe,python,numpy 问题索引1
# 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...
- 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 ...
最新文章
- js 判断 是否为android
- 最古老的100个.com域名
- 《软件工程方法与实践》—— 导读
- 今晚我们通宵学习SpringCloud!涨姿势!
- VS.NET 2005 SP1 安装注意
- 一棵树,怎么就平衡了(图解AVL+实现)
- python读取sql_从python读取sql的实例方法
- word List 10
- Ajax学习笔记-get请求参数-4
- Drools教程 —— 安装及eclipse项目创建
- STL两种格式:文本格式与二进制格式
- c语言函数实验总结小说,大一上期C语言实验报告7函数
- Onedrive 1T|5T 网盘获取
- 麦弗逊悬架硬点布置 根据设计输入,布置麦弗逊悬架硬点坐标,匹配转向拉杆断开点,匹配车轮外倾角和前束值,从而获得硬点初版坐标
- 抖音app开发时,在录制视频添加背景音乐功能实现流程
- android 如何保存网页图片格式,求助,如何在安卓app内嵌的H5页面里长按保存图片?...
- svg-icon的使用(将svg转换为icon来使用)
- MDN Web Docs
- 基于ESP32(Micropython)的天气显示+B站粉丝数显示-v4
- RLC串并联谐振回路特性、如何判断容性感性