如何在特定位置修改一个2D的numpy数组而不使用循环?
- 论坛
- 如何在特定位置修改一个2D的numpy数组而不使用循环?
3 浏览
如何在特定位置修改一个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)上的三个元素。