-
numpy.argmin(a, axis=None, out=None)
官方文档 -
参数详解
-
a : array_like 输入数组
-
axis : int, optional 默认输入数组展平,否则,按照指定的axis方向
按照指定轴,可以理解为将数据投影到这个轴上。
-
out : array, optional如果设置了某个数组b,则结果会输出到b中
返回:index_array : ndarray of ints下标组成的数组,shape与输入数组a去掉axis的维度相同。
返回axis轴向上最小值的索引构成的矩阵。
- 展平、axis=0、axis=1三种情况
为了更好显示所谓沿着指定的axis。
我们小时候上学,老师教矩阵(n*m)的时候为了便于理解,跟我们说横向是n,纵向是m。所以我们对于矩阵的理解限于二维结构的立体直观感受,对于三维四维就比较难理解。同样的原因,对于axis容易理解0是横、1是纵。
易学者,泛化不足也。
如果用横纵角度来看待这个函数,就必究容易迷糊,但是换成数学解构就比较容易了。
此处axis不仅可以有0,1,还可以有2、3、4、…等。就拿上面这个来理解:
- axis = 0
对于np.argmin(a, axis= 0)
返回的结果是沿着
a
x
i
s
=
0
axis=0
axis=0取最小,是由
a
x
i
s
=
1
axis=1
axis=1和
a
x
i
s
=
2
axis=2
axis=2对比得到。
因为 a . s h a p e = ( 2 , 3 , 2 ) a.shape = (2,3,2) a.shape=(2,3,2),所以此处是 a x i s = 0 axis=0 axis=0上2个数比较得到一个 s h a p e = ( 3 , 2 ) shape= (3,2) shape=(3,2)的矩阵。
- axis = 1
对于np.argmin(a, axis= 1)
返回的结果是沿着
a
x
i
s
=
1
axis=1
axis=1,三个数对比之后的结果,得到
a
x
i
s
=
0
axis=0
axis=0和
a
x
i
s
=
2
axis=2
axis=2结合出的矩阵,也就是
s
h
a
p
e
=
(
2
,
2
)
shape=(2, 2)
shape=(2,2)。
- axis = 2
同理,得到 a x i s = 0 axis=0 axis=0和 a x i s = 1 axis=1 axis=1组合的 s h a p e = ( 2 , 3 ) shape=(2, 3) shape=(2,3)的矩阵。
- 多个最小值,只选取第一个
-
numpy.argmax(a, axis=None, out=None)
官方文档
用法一样。