我有一个很大的np.ndarray (3600000,3)HUEVALUE和一个关联的CLASS号。我想使用该数组为每对HUEVALUE查找对应的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=0VALUE=1行,请执行以下操作:
a[np.where((a[:,0] == 0) * (a[:,1] == 1))]
#array([[0, 1, 2]])

关于python - 根据两列的值选择numpy ndarray中的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23359886/

10-13 01:20