2015-09-27 3 views
3

У меня есть список массивов numpy. Я хочу преобразовать список массивов в строку. Так что будет длинная строка массивов, такая как [stuff], [stuff2] »и т. Д. Каждый массив имеет 192 элемента. Преобразование работает, когда я делаю str (myList), если список имеет 5 массивов или меньше. Если у него 6 массивов, я возвращаю усеченные массивы с эллипсами. Почему это? Как я могу это остановить?Эллипсы при преобразовании списка массивов numpy в строку в python 3

Я рассмотрел сами массивы и на самом деле они не содержат эллипсов, они содержат правильные значения.

Я изучил его, и если я сделаю что-то вроде str (myList [0: 5]), он работает с первыми 5 массивами, но этот 6-й массив всегда идет на эллипсы. Обратите внимание, что это не просто эллипсы при печати на экран, я сохраняю эту переменную, и когда я смотрю на сохраненный текст, у нее есть эллипсы.

+0

Похоже, что ваш список массивов - это 2d-массив. 'numpy' использует эллипсы, когда массивы получают больше 1000 элементов (следовательно, 5 v 6). Если бы это был действительно список массивов, он отформатировал бы каждый отдельно, а не использовал бы эллипсы. – hpaulj

ответ

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 должна иметь аргумент .

+0

Спасибо! Это работает. – CHP

+0

http://stackoverflow.com/a/2891805/901925 добавляет контекст параметра печати – hpaulj