mengmengxyz
mengmengxyz

Reputation: 899

how to find minimum/maximum values axis by axis in numpy array

I have a NumPy array with a shape of (3,1,2):

A=np.array([[[1,4]],
            [[2,5]],
            [[3,2]]]).

I'd like to get the min in each column.

In this case, they are 1 and 2. I tried to use np.amin but it returns an array and that is not what I wanted. Is there a way to do this in just one or two lines of python code without using loops?

Upvotes: 4

Views: 20151

Answers (2)

Shaan
Shaan

Reputation: 141

You need to specify the axes along which you need to find the minimum. In your case, it is along the first two dimensions. So:

>>> np.min(A, axis=(0, 1))
array([1, 2])

Upvotes: 1

Akavall
Akavall

Reputation: 86188

You can specify axis as parameter to numpy.min function.

In [10]: A=np.array([[[1,4]],
                [[2,5]],
                [[3,6]]])

In [11]: np.min(A)
Out[11]: 1

In [12]: np.min(A, axis=0)
Out[12]: array([[1, 4]])

In [13]: np.min(A, axis=1)
Out[13]: 
array([[1, 4],
       [2, 5],
       [3, 6]])

In [14]: np.min(A, axis=2)
Out[14]: 
array([[1],
       [2],
       [3]])

Upvotes: 9

Related Questions