Sakura
Sakura

Reputation: 49

Comparing 2-dimensional numpy array in python

I want to comparing 2 values in a 2-dimensional numpy array. The array is as follows:

a = [[1, 3, 5],
     [4, 8, 1]]

I want to comparing [1, 3, 5] with [4, 8, 1] with a greater value into 1 group. The result I want is like this:

a1 = [4, 8, 5]
a2 = [1, 3, 1]

How could the code be written in python?

Upvotes: 0

Views: 55

Answers (2)

Kevin
Kevin

Reputation: 3368

Since you only have 2 rows you can do this:

a = np.array([[1, 3, 5],
              [4, 8, 1]])

idx = np.greater(*a)

a1 = a[idx.astype(int),np.arange(3)]
a2 = a[~idx.astype(int),np.arange(3)]

Upvotes: 0

sacuL
sacuL

Reputation: 51425

You can use np.sort on axis 0 (column-wise). Reverse the order using [::-1] to get them in descending order

>>> np.sort(a, axis = 0)[::-1]

array([[4, 8, 5],
       [1, 3, 1]])

Upvotes: 1

Related Questions