2017-02-20 17 views
0

У меня есть массив numpy формы (1, 7, 3) Я хотел бы найти строку с наивысшим элементом в столбце 3. Например: 232 является самым большим в третьем столбце, поэтому он должен выводить [196 228 232] Как я могу это сделать? Я попытался np.argmax, но неnumpy найти максимальную цифру в массиве

Вот пример массива:

[[[218 204 204] 
[344 194 31] 
[284 140 108] 
[196 228 232] 
[324 196 28] 
[224 228 57] 
[174 250 144]]] 
+0

может быть, эта ссылка может помочь http://stackoverflow.com/questions/12403238/maximum-values-along-axis-of-numpy-ndarray – phunsukwangdu

+0

Возможный дубликат [Maximum значения вдоль оси Numpy ndarray?] (http://stackoverflow.com/questions/12403238/maximum-values-along-axis-of-numpy-ndarray) – Evert

+0

a.max (ось = 2) возвращает '[218 344 284 232 324 228 250] ', что является максимальным значением для каждой строки, и мне нужен элемент с наибольшим номером [2], как в вопросе – Wideem

ответ

1

argmax является правильная идея здесь. давайте сделаем это шаг за шагом.

row_nr = np.argmax(data[0, :, 2]) 

это выбирает третий столбец и находит индекс наибольшего значения. остается выбрать эту строку:

data[0, row_nr, :] 
+0

спасибо, что нашли время, чтобы прочитать и ответить на мой вопрос. Теперь это имеет смысл – Wideem