【问题标题】:Identify an array with the maximum value, element wise in numpy在numpy中识别具有最大值的数组,元素明智
【发布时间】:2020-05-24 14:12:20
【问题描述】:

我正在寻找this question 答案的变体

给定多个数组(3 个或更多),我需要构造一个新数组,其中每个元素标识具有最大值的输入数组。

例如

array0 = np.array([1, 2, 3])
array1 = np.array([0, 3, 4])
array2 = np.array([-1, 1, 1])

结果数组应该是array([0,1,1])

np.maximum.reduce 在这种情况下似乎不起作用。 我只能想出一个暴力循环

d = []
for i in range(len(array0)):
  k = 0
  if array1[i] > array0[i]:
    k = 1
  if array2[i] > array1[i] and array2[i] > array0[i]:
    k = 2
  d.append(k)

有没有更 Pythonic/numpy 的方式来做到这一点?

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    从三个中构建一个新数组,并沿第一个轴取argmax

    np.array([array0, array1, array2]).argmax(0)
    # array([0, 1, 1])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-23
      • 2018-05-13
      • 2017-06-07
      • 2022-07-29
      • 1970-01-01
      • 2017-01-17
      • 2013-07-11
      • 2023-03-06
      相关资源
      最近更新 更多