我想逐个查找N个NumPy矩阵的最小值(但要稍作改动,直到最后阅读)。为了显示,我创建了3个numpy矩阵,如下所示:
>>> a = np.random.randint(100, size=(3,3))
>>> b = np.random.randint(100, size=(3,3))
>>> c = np.random.randint(100, size=(3,3))
>>> a
array([[79, 7, 71],
[14, 34, 68],
[98, 97, 6]])
>>> b
array([[28, 25, 95],
[69, 46, 39],
[90, 11, 21]])
>>> c
array([[56, 3, 67],
[44, 41, 44],
[66, 25, 42]])
除了输出d
我是:
d = array([[28, 3, 67],
[14, 34, 39],
[66, 11, 6]])
我还需要保留d矩阵中每个元素来自何处的信息。因此,如果我将a,b,c标记为类0、1、2。最后,我需要具有一个m
矩阵,如下所示:
m = array([[1, 2, 2],
[0, 0, 1],
[2, 1, 0]])
我更喜欢基于 no-loops 的numpy方法。
答案 0 :(得分:1)
要找到最小数量:
d = np.min([a, b, c], axis=0)
及其起源:
m = np.argmin([a, b, c], axis=0)