Python Numpy 控制台完全输出ndarray的实现

竹里
竹里
发布时间:2026-10-13 | 5人浏览过
原创

当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的实现方法就是本文分享的全部内容,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表