Предполагая, что у меня есть следующий массив NumPy
import numpy as np
arr = np.array([[0.2, 0.8], [0.99, 0.01], [0.08, 0.92]])
arr
Out[57]:
array([[0.2 , 0.8 ],
[0.99, 0.01],
[0.08, 0.92]])
Если бы я хотел преобразовать этот вывод в «классы» (или индекс наибольшего значения в каждой строке), я бы просто использовал:
arr.argmax(axis=1)
Out[58]: array([1, 0, 1], dtype=int64)
Проблема в том, что я хочу ограничить определенную границу. Для примера давайте используем 0,9 . Таким образом, каждая строка, которая не соответствует пороговому ограничению, вернет метку -1.
Выход для приведенного выше примера будет тогда [-1, 0, 1]
(поскольку ни 0,8, ни 0,2 не превышают 0,9).
Какой самый питонический способ сделать это? надеюсь (но не обязательно), используя numpy
.