python - 根据第二个数组在一个数组中查找项目

标签 python numpy

我有两个数组 AB:

A=array([[ 5.,  5.,  5.],
         [ 8.,  9.,  9.]])
B=array([[ 1.,  1.,  2.],
         [ 3.,  2.,  1.]])

B 中任何有“1”的地方我想对 A 中相同的行和列位置求和。

例如,对于这个问题,答案是 5+5+9=10

我希望它持续 2,3....n(B 中的所有唯一值)

所以对于 2 的...它会是 9+5=14 而对于 3 的它会是 8

我通过使用找到了唯一值:

numpy.unique(B)

我意识到这 make 需要多个步骤,但我无法真正使用索引矩阵来对另一个矩阵中的这些位置求和。

最佳答案

对于每个唯一值x,你可以做

A[B == x].sum()

例子:

>>> A[B == 1.0].sum()
19.0

关于python - 根据第二个数组在一个数组中查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693140/

相关文章:

python - 多维 numpy 数组中列表的频率表

Python:使用 mpi4py 通过 spawn 将数组广播到其他脚本

python - 我需要帮助在 discord py 中制作一个 discord py temp mute 命令

python - 在 Requirements.txt 中为 Virtualenv 指定 Python 版本

numpy自定义数组元素检索

python - 使用 "knee.py"导入 numpy 和 scipy 时出现神秘错误

python - 如何比较忽略 nans 的 numpy 数组?

python - 将 3 个数组相乘以形成条目相乘的 3D 数组

python - 交替应用于 Pandas

python - Scipy 的 sign() 不能保证有效吗?