Длинный массив NumPy не может быть напечатан полностью? - PullRequest
3 голосов
/ 25 декабря 2010

Я пытаюсь напечатать полное содержимое двух массивов 1001x1, но Python выдает только усеченный вывод примерно так:

array([[5,45],
       [1,23],
       ......,
       [1,24],
       [2,31]])  

вместо полного массива

Может кто-нибудь дать мне решение, как получить полный массив 1001x1?

Ответы [ 2 ]

6 голосов
/ 25 декабря 2010

См. Раздел Печать массивов в руководстве по NumPy:

Если массив слишком велик для печати, NumPy автоматически пропускает центральную часть массива и печатает только углы:

>>> print(np.arange(10000))
[   0    1    2 ..., 9997 9998 9999]

...

Чтобы отключить это поведение и заставить NumPy печатать весь массив, вы можете изменить параметры печати, используя set_printoptions.

>>> np.set_printoptions(threshold=nan)

Функция np.set_printoptions является частью библиотеки NumPy.

0 голосов
/ 25 декабря 2010

Я собираюсь догадаться, что вы пробовали простое утверждение вроде:

print myarray

... а не что-то более явное, например:

for each_item in myarray:
    print each_item

... или даже:

print ', '.join([str(x) for x in myarray])

Причина, по которой вы видите исключенный вывод, по-видимому, в том, что numpy реализует метод _str_ в своем классе array, который пытается дать "разумный" параметр по умолчанию строковое представление массива. Они, по-видимому, предполагают, что простые операторы print будут использоваться в основном для отладки, ведения журнала или аналогичных целей и что отчетность о результатах или маршалинг результатов в другие процессы или хранилище будет осуществляться с использованием более явных итераций по данные (как я показал здесь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...