python 3 中将 numpy 数组列表转换为字符串时的省略号

Ellipses when converting list of numpy arrays to string in python 3

我有一个 numpy 数组列表。我想将数组列表转换为字符串。这样就会有一长串像'[stuff],[stuff2]'之类的数组,每个数组有192个元素。如果列表有 5 个或更少的数组,当我执行 str(myList) 时转换有效。如果它有 6 个数组,我会返回带有省略号的截断数组。为什么是这样?我怎样才能阻止它?

我检查了数组本身,它们实际上不包含省略号,它们包含正确的值。

我进一步研究了它,如果我做类似 str(myList[0:5]) 的事情,它适用于前 5 个数组,但第 6 个数组总是变成省略号。请注意,这不仅仅是打印到屏幕时的省略号,我正在保存这个变量,当我查看保存的文本时它有省略号。

快速看一下,唯一的方法是使用 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 应该有一个阈值 参数。