Python/numpy:检索元素相对于函数结果的数组索引

Python/numpy: retrieve the array index of an element relative to the result of a function

我希望标题有意义,我不知道如何准确表达...

我有两个一维数组(V 和 C),里面的项数相等。我需要获得他们产品的最大值 (Wmax),这是我用这个实现的:

Wmax = numpy.amax(V*C)

但是,我还需要提取导致 Wmax 的 V 和 C 的实际值。然后的想法是检索 V 或 C 的数组索引(无论如何它们是相同的),然后在该索引处读取 V 和 C 的值。我考虑过检索此索引的一种方法是创建一个 W 数组,其中每个元素都是 V 和 C 的每个元素的乘积,W 上的 运行 numpy.amax 而不是 V*C 和然后找到Wmax里面的索引W.

但是,我想知道:有没有办法在不创建新变量W的情况下获得这个索引?这种不同的方法效率更高还是更低?

一种方法是像这样使用 np.argmax

import numpy as np

C = np.array([0, 5, 2, 3, 4, 5])
V = np.array([0, 2, 4, 4, 2, 1])

indx = np.argmax(C*V)

print(f"index of the max value:{indx}")
print(f"C's value:{C[indx]}")
print(f"V's value:{V[indx]}")
# output


index of the max value:3
C's value:3
V's value:4