numpy максимальная ось элемента = 1 дает предупреждение об устаревании - PullRequest
0 голосов
/ 26 февраля 2020

Я использую Python 3.7 и numpy 1.18.1, и у меня есть массив 3 x 2 numpy следующим образом:

y = np.array([
    [10, 2],
    [13, 15],
    [19, 1]
    ])

Теперь, чтобы найти максимальные значения по столбцам-

np.amax(y, axis = 0)
# array([19, 15])

# Find indices of maximum elements across columns-
np.where(y == np.amax(y, axis = 0))

И найти максимальные значения по столбцам -

np.amax(y, axis = 1)
# array([10, 15, 19])

Но, когда я пытаюсь найти индексы максимальных значений по столбцам -

np.where(y == np.amax(y, axis = 1))

Это дает мне следующее предупреждение:

: 1: DeprecationWarning: поэлементное сравнение не удалось; в будущем это приведет к ошибке.
np.where (y == np.amax (y, axis = 1))

Почему это происходит?

Спасибо!

1 Ответ

1 голос
/ 27 февраля 2020

Я думаю, что здесь речь идет о неровных формах - np.amax возвращает ndarray с формой 1,x теперь, когда вы берете axis=1 и в вашем случае у вас есть массив размером 3,2, который вы пытаетесь сравнить для одного столбца размером 1,3 - он просто не подходит.

Измените его, чтобы он работал:

np.where(y == np.amax(y, axis = 1).reshape(-1,1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...