ошибка при извлечении элемента из массива.питон - PullRequest
20 голосов
/ 22 марта 2012

У меня есть массив numpy как этот

a = np.array(1)

Теперь, если я хочу получить 1 обратно из этого массива. как я могу получить это ??

Я пытался

a[0], a(0).. 

как

IndexError: 0-d arrays can't be indexed

или

TypeError: 'numpy.ndarray' object is not callable

Я даже пытался сделать какое-то странное выравнивание и прочее, но я почти уверен, что это не должно быть настолько сложным .. И я получаю ошибки в обоих .. все, что я хочу, это 1 как INT? Спасибо

1 Ответ

34 голосов
/ 22 марта 2012

Что вы создаете с помощью

a = np.array(1)

является массивом нулевого измерения, и он не может быть проиндексирован. Вам также не нужно для индексации - вы можете использовать a напрямую, как если бы это было скалярное значение. Если вам действительно нужно значение другого типа, скажем float, вы можете явно преобразовать его с помощью float(a). Если вам это нужно в базовом типе массива, вы можете использовать a.item() или a[()].

Обратите внимание, что нульмерный массив изменяемый . Если вы измените значение одной записи в массиве, это будет видно по всем ссылкам на массив, который вы сохранили. Используйте a.item(), если вы хотите сохранить неизменное значение.

Если вам нужен одномерный массив с одним элементом, используйте

a = np.array([1])

Теперь вы можете получить доступ к одному элементу с помощью a[0].

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