在 numpy 中找到 3 个向量的 argmin
find argmin of 3 vectors in numpy
我有三个向量
a = np.arange(3)
b = np.arange(2,-1,-1)
c = np.ones((3,))
和它们的最小值 element-聪明的通过
np.minimum(a, b, c)
即:m = [0. 1. 0.]
我想找到这些值来自哪个数组,在我的例子中我想要这样的输入:
[0. x. 1.]
因为 m
中的第一个元素来自 a
而 m
中的最后一个元素来自 b
您可以使用带有 axis
参数的 argmin 方法:
>>> import numpy as np
>>> a = np.arange(3)
>>> b = np.arange(2,-1,-1)
>>> c = np.ones((3,))
>>> a
array([0, 1, 2])
>>> b
array([2, 1, 0])
>>> c
array([1., 1., 1.])
>>> all = np.stack([a, b, c])
>>> all
array([[0., 1., 2.],
[2., 1., 0.],
[1., 1., 1.]])
>>> all.min(axis=0)
array([0., 1., 0.])
>>> all.argmin(axis=0)
array([0, 0, 1])
我有三个向量 a = np.arange(3)
b = np.arange(2,-1,-1)
c = np.ones((3,))
和它们的最小值 element-聪明的通过
np.minimum(a, b, c)
即:m = [0. 1. 0.]
我想找到这些值来自哪个数组,在我的例子中我想要这样的输入:
[0. x. 1.]
因为 m
中的第一个元素来自 a
而 m
中的最后一个元素来自 b
您可以使用带有 axis
参数的 argmin 方法:
>>> import numpy as np
>>> a = np.arange(3)
>>> b = np.arange(2,-1,-1)
>>> c = np.ones((3,))
>>> a
array([0, 1, 2])
>>> b
array([2, 1, 0])
>>> c
array([1., 1., 1.])
>>> all = np.stack([a, b, c])
>>> all
array([[0., 1., 2.],
[2., 1., 0.],
[1., 1., 1.]])
>>> all.min(axis=0)
array([0., 1., 0.])
>>> all.argmin(axis=0)
array([0, 0, 1])