Я хочу, чтобы выполнить что-то относительно простой в NumPy:Как найти индекс столбца значения данной строки в numpy?
- Если есть один в строке, возвращает индекс столбца, содержащего одну +1.
- Если есть ноль или несколько один в строке возвращения 0.
Однако я в конечном итоге с довольно сложным кодом:
predictions = np.array([[1,-1,-1,-1],[-1,1,1,-1],[-1,-1,-1,1],[-1,-1,-1,-1]])
one_count = (predictions == 1).sum(1)
valid_rows_idx = np.where(one_count==1)
result = np.zeros(predictions.shape[0])
for idx in valid_rows_idx:
result[idx] = np.where(predictions[idx,:]==1)[1] + 1
Если я печатаю result
, программа печатает [ 1. 0. 4. 0.]
, которые является желаемым результатом.
Мне было интересно, существует ли более простой способ записи последней строки с использованием numpy.