打印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中的数组中,然后打印数组的内容[重复]