Как вызвать элемент в массиве NumPy? - PullRequest
21 голосов
/ 27 августа 2010

Это действительно простой вопрос, но я не нашел ответа. Как вызвать элемент в массиве numpy?

import numpy as np

arr = np.array([[1,2,3,4,5],[6,7,8,9,10]])

print arr(0,0)

Код выше не работает.

Ответы [ 4 ]

36 голосов
/ 27 августа 2010

Просто используйте квадратные скобки вместо:

print arr[1,1]
6 голосов
/ 24 июля 2016

TL; DR

Использование нарезка :

>>> import numpy as np
>>> 
>>> arr = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> 
>>> arr[0,0]
1
>>> arr[1,1]
7
>>> arr[1,0]
6
>>> arr[1,-1]
10
>>> arr[1,-2]
9

В длинну:

Надеюсь, это поможет вам понять:

>>> import numpy as np
>>> np.array([ [1,2,3], [4,5,6] ])
array([[1, 2, 3],
       [4, 5, 6]])
>>> x = np.array([ [1,2,3], [4,5,6] ])
>>> x[1][2] # 2nd row, 3rd column 
6
>>> x[1,2] # Similarly
6

Но чтобы понять, почему нарезка полезна, в нескольких измерениях:

>>> np.array([ [[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]] ])
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]]])
>>> x = np.array([ [[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]] ])

>>> x[1][0][2] # 2nd matrix, 1st row, 3rd column
9
>>> x[1,0,2] # Similarly
9

>>> x[1][0:2][2] # 2nd matrix, 1st row, 3rd column
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: index 2 is out of bounds for axis 0 with size 2

>>> x[1, 0:2, 2] # 2nd matrix, 1st and 2nd row, 3rd column
array([ 9, 12])

>>> x[1, 0:2, 1:3] # 2nd matrix, 1st and 2nd row, 2nd and 3rd column
array([[ 8,  9],
       [11, 12]])
1 голос
/ 24 сентября 2018

Также вы можете попытаться использовать ndarray.item(), например, arr.item((0, 0)) (rowid + colid to index) или arr.item(0) (flatten index), его doc https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.item.html

0 голосов
/ 07 мая 2018

Если вы используете numpy и ваш массив представляет собой np.array из np.array элементов, таких как:

A = np.array([np.array([10,11,12,13]), np.array([15,16,17,18]), np.array([19,110,111,112])])

и вы хотите получить доступ к внутренним элементам (например10,11,12 13,14.......) затем используйте:

A[0][0] вместо A[0,0]

Например:

>>> import numpy as np
>>>A = np.array([np.array([10,11,12,13]), np.array([15,16,17,18]), np.array([19,110,111,112])])
>>> A[0][0]
>>> 10
>>> A[0,0]
>>> Throws ERROR

(PS: может быть полезно при использовании numpy.array_split())

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