Как установить случайные элементы в двумерном массиве без циклов? - PullRequest
1 голос
/ 30 октября 2019

У меня есть двумерный массив нулей, на который я хочу установить некоторые случайные элементы. Сначала выбираются строки, а затем столбцы, например:

>>> A = np.zeros((100, 50))
>>> rows = np.random.choice(100, size = 10, replace = False)
>>> cols = np.random.randint(50, size = 10)
>>> A[rows][cols] = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: index 24 is out of bounds for axis 0 with size 10

Конечно, я могу решить проблему с помощью явного цикла:

>>> for row in rows: A[row][np.random.randint(50)] = 1

Но я не хочу,Можно ли выполнить то, что я хочу, используя numpy без явного зацикливания?

1 Ответ

1 голос
/ 30 октября 2019

Укажите все индексы в одном наборе скобок, например:
A[rows,cols] = 1

...