我想获取numpy.ndarray中的每一行并对其进行转换。例如:
for each row i in array a
r=random number
for each element j in row i:
a[i][j]=a[i][j]*r
答案 0 :(得分:2)
我建议您首先创建矩阵r
,其中每个单元格保存a
的相应权重。然后,进行乘法运算。所以,你可以利用矢量化的好处。
示例:
r = np.zeros(a.shape)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
# compute r[i, j]
a = a * r
如果您的随机数不依赖于a
的单元格,请运行:
a = a * numpy.random.rand(a.shape[0], a.shape[1])
如果您希望随机数不会更改列,那么您可以享受broadcasting的好处:
a = a * numpy.random.rand(a.shape[0], 1)
对于迭代数组,您可以检查this documentation。
答案 1 :(得分:0)
访问numpy.ndarray
元素的方法是:
a[i,j]=a[i,j]*r