python - 从 numpy.where() 获取值的位置作为单个值并将其附加到另一个数组

标签 python arrays numpy indexing

我有一个从 numpy 创建的 python 数组:

a = [[1.         0.5        0.3 ... 0.71     0.72     0.73]
     [0.         0.4        0.6 ... 0.74     0.75     0.76]
     [0.         0.3        0.  ... 0.72     0.73     0.74]
                                ...
     [0.         0.2        0.3 ... 0.56     0.57     0.58]
     [0.         0.1        0.3 ... 0.67     0.68     0.69]]

和另一个数组

b = [[1.         0.5        0.6 ... 0.74     0.75     0.76]]

我从 np.max(a, axis=0) 得到的。现在我需要数组的索引,其中数组 'a' 中的值等于我使用的 'b' 中的相应值:

locn = []
for i in range(0, len(b[0])):
    for j in range(0, len(a)):
        fav = np.where(a[j][i] == b[0][j])
        locn.append(fav)
print(locn)

我得到的输出为

[(array([0]),), (array([0]),), (array([0]),), (array([0]),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([0]),), (array([0]),), (array([0]),), (array([0]),), (array([], dtype=int64),), ............

我本可以使用 np.where(a == np.max(a)) 来获取最大值的位置,但这不是我的问题。我需要确切的位置(比如第一个数组的第一个元素……或类似的东西)在 loc[] 中附加数组的索引。例如:对于第一轮 1 是最高的,我只需要将 附加索引值 0新列表 locn[] 因为 0 是第一轮的索引其中内部数组的元素等于最大值。

我该怎么做?提前致谢。

最佳答案

您可以使用函数 argmax 而不仅仅是 max。例如

a = np.random.randint(10, size=(4, 5))

[
[8 9 6 4 7]
[6 4 0 3 6]
[7 5 9 1 6]
[1 4 8 8 9]
]

np.max(a, axis=0)

array([8, 9, 9, 8, 9])

np.argmax(a, axis=0)

array([0, 0, 2, 3, 3], dtype=int64)


如果你想按照你描述的方式打印信息,那么你可以这样做

b = np.argmax(a, axis=0)
print('locn'+str(b))

locn[0 0 2 3 3]

关于python - 从 numpy.where() 获取值的位置作为单个值并将其附加到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643676/

相关文章:

python -/usr/bin/clang 命令在 MacOS 上尝试 pip 安装 TA-lib 失败

javascript - 比较包含数组的对象属性以找出差异

c# - 如何从列表添加到数组并返回数组

java - 检查二维数组中的元素是否属于某种数据类型

python - sympy lambdify 运行时警告 : invalid value encountered in double_scalars

python - 运行 Python 脚本时需要错误 : Microsoft Visual C++ 10. 0(无法找到 vcvarsall.bat)

python - 矩阵的 NumPy 张量/克罗内克积被打乱

python - 如何使用 selenium python 通过 href 值查找元素?

python - 如何获得轮廓内最大的矩形?

python - 在matplotlib中为起点和终点赋予不同的颜色