在Python 3中将NumPy数组列表转换为字符串时出现省略号

3
我有一组numpy数组的列表。我想将这个数组列表转换为字符串,使得形成一个长长的字符串,其中包括 '[ stuff ], [ stuff2 ]' 等多个数组。每个数组都有192个元素。当列表中有5个或更少的数组时,使用 str(myList) 方法可以进行转换。但如果有6个数组,则返回带省略号的截断数组。为什么会这样?如何解决?
我已经检查了这些数组并没有省略号,它们包含了正确的值。
我进一步研究后发现,如果我执行类似 str(myList[0:5]) 的操作,它可以在前5个数组上工作良好,但第6个数组总是会变成省略号。请注意,这不仅仅是在屏幕上打印时出现省略号,我正在保存这个变量,当我查看保存的文本时它也有省略号。

听起来你的数组列表实际上是一个二维数组。当数组元素超过1000个时,numpy使用省略号(因此5 v 6)。如果它真的是一个数组列表,它会独立地格式化每个数组,而不使用省略号。 - hpaulj
1个回答

4

从简单的角度看,唯一的方法是使用numpy.set_printoptions:

import numpy as np

a = np.random.randint(5, size=(6, 192))
s1 = str(a)
np.set_printoptions(threshold = np.prod(a.shape))
s2 = str(a)

print('...' in s1)
print('...' in s2)

提供

True
False

在我的Ubuntu 14.04系统上,使用的是Python 2.7和Numpy 1.8.2。

在更改后,我希望将默认值恢复为1000。此外,在我看来,numpy.array2string函数应该有一个阈值参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接