【发布时间】:2011-02-06 00:54:48
【问题描述】:
假设我有一个 2D numPy 数组,例如:
a = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
如何找到我知道多个值的行的索引?比如知道第0列是2,第1列是5,我想知道满足这个条件的行索引(本例是第1行)。
在我的应用程序中,前两列是 (x,y) 坐标,第三列是有关该坐标的信息。我正在尝试在列表中查找特定坐标,以便更改第三列中的值。
编辑:为了澄清,这里是一个非正方形的例子:
a = [ [1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18] ]
假设我知道我要查找的行的第 0 列有 13 个,第 1 列有 14 个。我想返回该行的索引。在这种情况下,我想返回索引 2(第 2 行)。
或者更好的是,我想编辑第 0 列有 13 和第 1 列有 14 的行的第 4 列。这是我对我所描述的情况找到的解决方案(将值更改为 999):
a[(a[:,0]==13) & (a[:,1]==14), 3] = 999
给予:
a = [ [1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 999, 17, 18] ]
如果不清楚,我很抱歉。有人可以在我的原始帖子(编辑上方)中指出如何对它进行不同的解释,因为我看不到它。
谢谢。
编辑 2:修复了第一次编辑中的错误(以粗体显示)
我现在可以看到我是如何让所有人都感到困惑的。我的问题的解决方案在eat的解决方案的条件b)中有很好的描述。谢谢。
【问题讨论】:
-
我很困惑。编辑后,您的结果是什么:
sum(a[0]== 13)?谢谢 -
不幸的是,我第一次编辑我的帖子时搞砸了,我现在已经修改了。感谢您的耐心等待。
-
很高兴您能够解决您的问题。如果您觉得我的回答对您很有价值,您可以考虑支持它;-)。谢谢
-
@eat:在获得 15 名声望之前我无法投票,但我确实将其标记为我接受的答案。谢谢。
-
@lookitsmark:但你似乎已经接近 15 岁了 ;-)。谢谢