Как установить случайные значения в 2d-numpy-array, где значения очень низкие? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть 2d-numpy-array (28x28), и я хотел бы установить случайные значения для всех тех индексов, которые имеют значение ниже 50. Я попробовал кое-что:

myarray[myarray < 50] = random.randint(80,100)

Это не работает правильно, потому что все выбранные индексы получают одинаковое случайное значение. Я хотел бы иметь разные случайные значения.

for y in range(28):
   for x in range(28):
      if myarray[y,x] < 50:
         myarray[y,x] = random.randint(80,100)

Приведенный выше код решает проблему, но я думаю, что она не работает эффективно, потому что она работает очень медленно с большими наборами данных.

Есть ли лучшая функция?

1 Ответ

1 голос
/ 18 апреля 2019

Сначала используйте np.random.uniform.См. Генерация случайного массива с плавающей точкой в ​​диапазоне

Затем,

myarray[myarray < 50] = np.random.uniform(low=80, high=100,
       size=myarray[myarray < 50].shape)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...