根据两列的值在 numpy ndarray 中选择行

2024-03-08

我有一个大np.ndarray (3600000,3), the HUE, the VALUE,以及相关的CLASS数字。对于每对HUE and VALUE我想使用这个数组找到相应的Class数字。我是Python的初学者,并且很难做到这一点。你知道怎么做吗?

先感谢您!


我假设你的数组看起来像:

       |(HUE)(VALUE)(CLASS)
row/col|   0     1     2
-------+-----------------
0      |   0     1     2
1      |   3     4     5
2      |   6     7     8
.      |   .     .     .
.      |   .     .     .
3599999|   .     .     .

这是示例代码。为了简单起见,我将大小 3600000 更改为 5。

a = np.array(xrange(5 * 3))
a.shape = (5, 3)

现在阵列a看起来像这样:

array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14]])

如果你想与HUE=9,这样做:

a[np.where(a[:,0] == 9)]
#array([[ 9, 10, 11]])

如果你想与VALUE=4,这样做:

a[np.where(a[:,1] == 4)]
#array([[3, 4, 5]])

如果你想与HUE=0 and VALUE=1,这样做:

a[np.where((a[:,0] == 0) * (a[:,1] == 1))]
#array([[0, 1, 2]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据两列的值在 numpy ndarray 中选择行 的相关文章

随机推荐