У меня есть массив numpy, например
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Теперь я хочу разделить каждый элемент, который меньше 5 на 2. Результат должен быть
[[0.5, 1, 1.5], [2, 5, 6], [7, 8, 9]]
Как я могу сделать это?
Использование numpy.where:
numpy.where
np.where(arr<5, arr/2, arr)
Вывод:
array([[0.5, 1. , 1.5], [2. , 5. , 6. ], [7. , 8. , 9. ]])
Вот что вы могли бы сделать
x[x<5] = x[x<5]/2
Вы можете сделать это путем логического индексирования:
>>> import numpy as np >>> x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype = float) >>> x[x<5] = x[x<5]/2 >>> x array([[0.5, 1. , 1.5], [2. , 5. , 6. ], [7. , 8. , 9. ]])
Например, если ваш массив называется np_array
np_array
numpy.where(np_array >=5, np_array, np_array/2)
См. Документацию здесь