user366312
user366312

Reputation: 16896

Indexing a numpy 2D matrix

Suppose, I have this:

import numpy as np

N = 5

ids = [ 1.,          2.,          3.,          4.,          5.,        ]
scores = [ 3.75320381,  4.32400937,  2.43537978,  3.73691774,  2.5163266, ]

ids_col = ids.copy()
scores_col = scores.copy()

students_mat = np.column_stack([ids_col, scores_col])

Now, I want to manually show the ids and scores of those students whose score is more than 4.0.

How can I make the following routine work?

print(students_mat([False, True, False, False, False]))

Error

>>> (executing file "arrays.py")
Traceback (most recent call last):
  File "D:\Python\arrays.py", line 25, in <module>
    print(students_mat([False, True, False, False, False]))
TypeError: 'numpy.ndarray' object is not callable

Upvotes: 0

Views: 57

Answers (1)

Allen Qin
Allen Qin

Reputation: 19947

#you need to convert Boolean list to an array to be used when selecting elements.
print(students_mat[np.asarray([False, True, False, False, False])])
[[ 2.          4.32400937]]

Upvotes: 1

Related Questions