我是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
答案 0 :(得分:2)
您可以assign values to indexed array。对于您的情况,首先生成2d随机数组,然后将其直接添加到切片的data
:
data[1:] += np.random.normal(0, 0.8, (nRows - 1, nCols))