Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 383
mengmengxyz Avatar asked Oct 31 '25 19:10

mengmengxyz


2 Answers

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]])
like image 137
Akavall Avatar answered Nov 03 '25 09:11

Akavall


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])
like image 28
Shaan Avatar answered Nov 03 '25 11:11

Shaan