Как добавить случайное число в подраздел массива numpy? - PullRequest
0 голосов
/ 02 ноября 2018

Я новичок в Python.

У меня есть массив из 3 столбцов и 50 строк. Я хочу добавить значение, полученное из нормально распределенного распределения, к каждому числу в массиве, кроме первой строки. Мне любопытно узнать, есть ли более чистый, но также читаемый способ сделать это по сравнению с тем, что я сейчас делаю? На данный момент я использую, возможно, не очень элегантный способ:

 nRows = np.shape (data)[0]  
 nCols = np.shape (data)[1]  
 x = data[0,:].copy()  # Copy the first row
 # Add a random number to all rows but 0
 for i in range (nCols):
     data[:,i] += np.random.normal (0, 0.8, nRows)
 data[0,:] = x # Copy the first row back

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете присвоить значения индексированному массиву . Для вашего случая сначала сгенерируйте 2d случайный массив, а затем непосредственно добавьте его в нарезанный data:

data[1:] += np.random.normal(0, 0.8, (nRows - 1, nCols))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...