@albus-feles

Как проверить элементы массива на какое-то условие?

Имеется случайный массив:

а = np.random.randint(15, 37, (2, 3, 4))

Используя этот массив, необходимо преобразовать его в новый массив со следующими значениями:

  • "small", если значения меньше 20
  • "medium", если значения в промежутке [20, 30]
  • "large", если значения больше 30

К примеру у нас есть массив:

[[[33 22 16 29]
[28 36 36 23]
[15 26 27 24]]

Нужно провести элементы под эти условия. На выходе получаем приблизительно такой массив:

[[[large medium small medium]
[medium large large medium]
[small medium medium medium]]

Не пойму, как числовой элемент провести под условие и получить вместо него значение типа str.
  • Вопрос задан
  • 1104 просмотра
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
a = np.random.randint(15, 37, (2, 3, 4))
print(a)

[[[33 22 16 29]
  [28 36 36 23]
  [15 26 27 24]]

 [[17 26 36 31]
  [28 20 33 32]
  [22 30 19 31]]]


b = np.full_like(a.astype(str), 'medium')

b[a < 20] = 'small'
b[a > 30] = 'large'

print(b)
[[['large' 'medium' 'small' 'medium']
  ['medium' 'large' 'large' 'medium']
  ['small' 'medium' 'medium' 'medium']]

 [['small' 'medium' 'large' 'large']
  ['medium' 'medium' 'large' 'large']
  ['medium' 'medium' 'small' 'large']]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы