打印numpy数组的全部内容[重复]

Posted

技术标签:

【中文标题】打印numpy数组的全部内容[重复]【英文标题】:Printing FULL contents of numpy array [duplicate] 【发布时间】:2013-04-05 12:21:13 【问题描述】:

我正在使用 python 进行图像处理,我想输出一个变量,现在变量 b 是一个形状为 (200,200) 的 numpy 数组。当我做print b 时,我看到的只是:

array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

如何打印出这个数组的全部内容,将其写入文件或其他简单的东西,以便我可以查看全部内容?

【问题讨论】:

首先显示print type(b)的输出 等一下,是numpy数组吗? 【参考方案1】:

当然,您可以将数组的打印阈值更改为answered elsewhere:

np.set_printoptions(threshold=np.nan)

但根据您要查看的内容,可能有更好的方法来做到这一点。例如,如果您的数组确实如您所展示的那样大部分是零,并且您想检查它是否具有非零值,您可能会查看以下内容:

import numpy as np
import matplotlib.pyplot as plt

In [1]: a = np.zeros((100,100))

In [2]: a
Out[2]: 
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

更改一些值:

In [3]: a[4:19,5:20] = 1

而且看起来还是一样:

In [4]: a
Out[4]: 
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

检查一些不需要手动查看所有值的东西:

In [5]: a.sum()
Out[5]: 225.0

In [6]: a.mean()
Out[6]: 0.022499999999999999

或绘制它:

In [7]: plt.imshow(a)
Out[7]: <matplotlib.image.AxesImage at 0x1043d4b50>

或保存到文件中:

In [11]: np.savetxt('file.txt', a)

【讨论】:

太棒了,np.savetxt 命令肯定会派上用场。谢谢。我尝试使用 .write 但它最终只是保存了上面显示的截断版本。 欢迎您@user2275931,欢迎来到Stack Overflow!如果这回答了您的问题,您可以单击它旁边的复选标记以“接受”答案。 @user2275931 很好,还请注意,np.savetxt 也采用各种格式选项。【参考方案2】:
to_print = "\n".join([", ".join(row) for row in b])
print (to_print) #console

f = open("path-to-file", "w")
f.write(to_print) #to file

如果是 numpy 数组:Print the full numpy array

【讨论】:

是的,它是 numpy.ndarray 好的,这很有帮助,但是这个输出的结构是什么?每个 [ ] 向量都是单行,对吗? 是的(至少应该是:))。尝试使用具有清晰元素模式的较小数组,例如[[1,2,3], [4,5,6]] 来理解结构。

以上是关于打印numpy数组的全部内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章

返回一个指向 char 数组的指针。如何打印出数组的全部内容?

Python NumPy - 如何打印不显示完整集的数组[重复]

返回数组的全部内容[重复]

我正在尝试将对象添加到python中的数组中,然后打印数组的内容[重复]

Python\Numpy:将数组与 NAN 进行比较 [重复]

将熊猫数据框转换为numpy数组[重复]