Numpy方法设置数组的特定维度中的所有值

时间:2015-09-11 11:40:56

标签: python arrays numpy

让我说我在matlab中有这个矩阵:

a(:,:,1) =

     1     2     3
     4     5     6
     7     8     9


a(:,:,2) =

    10    20    30
    40    50    60
    70    80    90

现在我可以做到

a(:,:,2) = zeros(3,3)

我得到了

a(:,:,1) =

     1     2     3
     4     5     6
     7     8     9


a(:,:,2) =

     0     0     0
     0     0     0
     0     0     0

我能用numpy复制这种行为的唯一方法(a(:,:,2)=某些数组)是一个很好的旧循环

for dim0 in range(a.shape[0]):
    for dim1 in range(a.shape[1]):
        a[dim0, dim1, 1] = 0

有没有更好的numpyish方式来做到这一点?

1 个答案:

答案 0 :(得分:4)

是的。与Matlab完全相同。你的循环与:

相同
a[:,:,1] = 0

您可以详细了解in the docs