Python Numpy 控制台完全输出ndarray的实现
当Numpy数组维度较大时,控制台默认会省略中间数据。本文介绍如何使用np.set_printoptions()方法完全输出数组。详细解析precision、threshold、edgeitems及formatter四个关键参数的作用,并提供重置设置的技巧,帮助开发者灵活控制数组显示格式。
Numpy数组完全输出设置方法
具体实现方式如下所示:
import numpy as np
np.set_printoptions(threshold=np.nan)
print(ndarray)
set_printoptions参数详解
当ndarray内部存储的数据维度非常大时,在控制台直接打印往往无法完整显示所有内容,中间部分会被省略号替代。此时,可以借助Numpy库提供的set_printoptions()方法来调整输出行为。
set_printoptions(precision=None,
threshold=None,
edgeitems=None,
linewidth=None,
suppress=None,
nanstr=None,
infstr=None,
formatter=None)
precision参数用于指定输出结果保留的小数位数精度。
threshold参数定义了数组元素数量在小于该阈值时不进行折叠截断。
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'是其中一个键,表示内部的x可以包含所有类型的数据;其他可用的键可以在源码中进一步查阅。
最后,如果仅希望在代码的某一部分使用自定义的printoptions,可以通过再次调用np.set_printoptions()方法来恢复默认设置。
以上关于Python Numpy控制台完全输出ndarray的实现方法就是本文分享的全部内容,希望能为大家提供参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













