我有一个数组,它是使用
使用numpy,我想要搜索一些值,例如在
sp.distance.cdist
获得的,这个数组长这样: [ 0. 5.37060126 2.68530063 4.65107712 2.68530063 4.65107712
2.04846297 7.41906423 4.11190697 6.50622284 4.11190697 6.50622284]
[ 5.37060126 0. 4.65107712 2.68530063 4.65107712 2.68530063
7.41906423 2.04846297 6.50622284 4.11190697 6.50622284 4.11190697]
[ 2.68530063 4.65107712 0. 2.68530063 4.65107712 5.37060126
4.11190697 6.50622284 2.04846297 4.11190697 6.50622284 7.41906423]
[ 4.65107712 2.68530063 2.68530063 0. 5.37060126 4.65107712
6.50622284 4.11190697 4.11190697 2.04846297 7.41906423 6.50622284]
[ 2.68530063 4.65107712 4.65107712 5.37060126 0. 2.68530063
4.11190697 6.50622284 6.50622284 7.41906423 2.04846297 4.11190697]
[ 4.65107712 2.68530063 5.37060126 4.65107712 2.68530063 0.
6.50622284 4.11190697 7.41906423 6.50622284 4.11190697 2.04846297]
[ 2.04846297 7.41906423 4.11190697 6.50622284 4.11190697 6.50622284
0. 9.4675272 4.7337636 8.19911907 4.7337636 8.19911907]
[ 7.41906423 2.04846297 6.50622284 4.11190697 6.50622284 4.11190697
9.4675272 0. 8.19911907 4.7337636 8.19911907 4.7337636 ]
[ 4.11190697 6.50622284 2.04846297 4.11190697 6.50622284 7.41906423
4.7337636 8.19911907 0. 4.7337636 8.19911907 9.4675272 ]
[ 6.50622284 4.11190697 4.11190697 2.04846297 7.41906423 6.50622284
8.19911907 4.7337636 4.7337636 0. 9.4675272 8.19911907]
[ 4.11190697 6.50622284 6.50622284 7.41906423 2.04846297 4.11190697
4.7337636 8.19911907 8.19911907 9.4675272 0. 4.7337636 ]
[ 6.50622284 4.11190697 7.41906423 6.50622284 4.11190697 2.04846297
8.19911907 4.7337636 9.4675272 8.19911907 4.7337636 0. ]]
使用numpy,我想要搜索一些值,例如在
2.7
和2.3
之间,并且在数组的行中找到它们时,同时返回它们的索引。我已经阅读了很多资料,例如.argmin()
部分实现了我想要的功能(但它只显示零或低于零的值的位置,并且只有一个匹配项)。在.argmin的文档中,我找不到任何关于如何找到不为零的最小值并且不在第一个匹配项后停止的相关信息。我需要在这个区间内进行操作。为了更好地解释,这就是我期望得到的:
e.g.:
[row (0), index (2), index (4)]
[row (1), index (3), index (5)]
[row (2), index (0), index (3)]
什么是最好的方法来做到这一点?与此同时,我将继续尝试,如果我找到解决方案,我会在这里发布。
谢谢。
(v > 2.3) & (v < 2.7)
的结果(一个布尔类型的数组),而不是使用一个索引数组。 - Sven Marnach