如何在numpy数组的子部分添加随机数?

时间:2018-11-02 03:38:42

标签: python numpy

我是Python的新手。

我有一个3列50行的numpy数组。我想将正态分布的值添加到数组中除第一行之外的每个数字。我想知道是否有一种更清洁但可读的方法来进行此操作,而我目前正在做什么?目前,我正在使用一种不太优雅的方法:

 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 :(得分:2)

您可以assign values to indexed array。对于您的情况,首先生成2d随机数组,然后将其直接添加到切片的data

data[1:] += np.random.normal(0, 0.8, (nRows - 1, nCols))