【问题标题】:Ellipses when converting list of numpy arrays to string in python 3在python 3中将numpy数组列表转换为字符串时的省略号
【发布时间】:2015-12-24 15:58:28
【问题描述】:

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

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

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

【问题讨论】:

  • 听起来你的数组列表实际上是一个二维数组。 numpy 在数组大于 1000 个元素时使用省略号(因此是 5 v 6)。如果它真的是一个数组列表,它将独立格式化每个数组,而不使用省略号。

标签: python numpy ellipsis


【解决方案1】:

快速浏览一下,唯一的方法就是使用 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 应该有一个阈值 论据。

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 2019-03-24
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2019-10-31
    • 1970-01-01
    相关资源
    最近更新 更多