25

I have a big np.ndarray (3600000,3), the HUE, the VALUE, and an associated CLASS number. For each pairs of HUE and VALUE I would like to find, using this array the corresponding Class number. I'm a very beginner in Python and have a hard time doing it. Do you know a way to do it?

Thank you in advance!

0

2 Answers 2

47

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]])
Sign up to request clarification or add additional context in comments.

1 Comment

what about HUE=1 or VALUE=1 ?
7

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.