我怎样才能从每行的ndarray中获取元素?

时间:2013-06-21 12:27:33

标签: python numpy

我想获取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

2 个答案:

答案 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