Объяснение фрагмента кода Python >> numpy.nonzero (row == max (row)) [0] [0] << из скрипта, использующего numpy - PullRequest
4 голосов
/ 20 мая 2011

Что означает этот код Python

row = R[i,]
j = numpy.nonzero(row == max(row))[0][0]

сделать, предполагая, что это вывод:

command   # output of python
----------------------------------
R.shape   # (224, 24)
type(R)   # <type 'numpy.ndarray'>
type(row) # <type 'numpy.ndarray'>
type(j)   # <type 'numpy.int64'>

(Я предоставлю дополнительную информацию, если потребуется, чтобы ответить на мой вопрос.)

Обновление:

Извините, я дважды использовал переменную i. Я изменил это в вопросе!

Ответы [ 2 ]

8 голосов
/ 20 мая 2011

Две строки выглядят как окольный способ сказать j = np.argmax(R[i]), то есть найти индекс столбца самого большого элемента в i -ой строке R и сохранить результат в j.

2 голосов
/ 20 мая 2011

Возможно, пример поможет:

In []: R= arange(12).reshape(4, 3)
In []: R
Out[]: 
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
In []: i= 1
In []: row= R[i, ]
In []: row
Out[]: array([3, 4, 5])
In []: j= nonzero(row== max(row))[0][0]
In []: j
Out[]: 2

Таким образом, j является индексом максимального элемента в i-й строке R. Итак

In []: R[i, j]
Out[]: 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...