如何在特定位置修改一个2D的numpy数组而不使用循环?

3 浏览
0 Comments

如何在特定位置修改一个2D的numpy数组而不使用循环?

我有一个2D的numpy数组,还有一组应该设置为特定值的行和列的数组。我们来看以下示例

 a = array([[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]])

我想修改行[0,2]和列[1,2]上的元素。结果应该是以下数组

 a = array([[1, 2, 0],
           [4, 5, 0],
           [7, 8, 9]])

我尝试了以下操作,结果是修改了每行中每个列的序列

rows = [0,1]
cols = [2,2]
b=a[numpy.ix_(rows,columns)]

这导致了以下数组,修改了指定数组的每个列

array([[1, 0, 0],
       [4, 5, 6],
       [7, 0, 0]])

请问有人可以告诉我如何做吗?

非常感谢

补充说明:需要注意的是,行和列巧合地是连续的。实际上,它们可以是任意的任意顺序。如果是行=[a,b,c]和列=[n,x,z],那么我想要修改的位置是(a,n),(b,x),(c,z)上的三个元素。

0