I have a big np.ndarray (3600000,3), the HUE, the VALUE, and an associated CLASS number. For each pairs of HUE a         
        
Try this code:
 x[x[:, 2] == class_number[:, :2]
where x is np.ndarray
 x[:, 2] == class_number
contains true/false that means whether the last is class_number or not. 
You need to take a look at: Boolean indexing in http://wiki.scipy.org/Cookbook/Indexing 
Moved from comment.
I assume your array looks like:
       |(HUE)(VALUE)(CLASS)
row/col|   0     1     2
-------+-----------------
0      |   0     1     2
1      |   3     4     5
2      |   6     7     8
.      |   .     .     .
.      |   .     .     .
3599999|   .     .     .
And here is the sample code. For simplicity I changed the size 3600000 to 5.
a = np.array(xrange(5 * 3))
a.shape = (5, 3)
Now array a look like this:
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14]])
If you want row with HUE=9, do like this:
a[np.where(a[:,0] == 9)]
#array([[ 9, 10, 11]])
If you want row with VALUE=4, do like this:
a[np.where(a[:,1] == 4)]
#array([[3, 4, 5]])
If you want row with HUE=0 and VALUE=1, do like this:
a[np.where((a[:,0] == 0) * (a[:,1] == 1))]
#array([[0, 1, 2]])