如何在Python中有效地匹配两个数组值?

跳蚤47

我正在尝试找到在Python中匹配两个数组轴的最佳方法,最有可能使用Numpy。更精确地说:我有C一个是H xW x L矩阵和D哪个是H xW矩阵。H和W是图像的高度和宽度,L是例如可以在图像中显示的亮度的集合(例如0100)。D包含像素的实际亮度。

我想添加所有与D矩阵C中的亮度相匹配的像素第三轴上与亮度相关的值,例如,矩阵中的值会告诉我要使用哪个索引来获取矩阵中的值DC

当然,我可以通过三个循环轻松地做到这一点:

sum = 0

for row in range(H) :
  for column in range(W) :
    for luminance in range(L) :
      if luminance == D[row, column] :
        sum += C[row, column, luminance]
        break

但这不是有效的。我正在尝试找到一种方法来使用numpy来执行此操作,如下所示:

import numpy as np

sum = np.sum(C[:, :, np.where(C[:,:] == [D[:,:]])[0][0]))

我不知道这是否应该工作。我认为可能存在一种使用meshgrid函数轻松遍历像素并通过调用正确进行匹配的方法

import numpy as np

sum = np.sum(np.meshgrid(range(H), range(W), f(D)))

其中f(D)必须与D矩阵有关。

好吧,这是我到目前为止尝试过的,感谢您一如既往的帮助!

跳蚤47

我碰碰这个线程,以包含一个答案numpy.meshgrid

一个人可以做到这一点:

import numpy as np

lines, columns = np.meshgrid(range(H), range(W), indexing='ij')

sum = np.sum(C[lines, columns, D])

这样,in中的值将D告诉您使用哪个索引C来获取正确的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中有效地合并两个具有容差的数据帧

如何在python中有效地找到两个字典之间的所有差异

如何有效地匹配两个数据帧中的字符串

通过均匀分配值来有效地合并两个数组

在Python中有效地合并两个列表的值

如何在Java中有效地合并两个列表?

如何在python pandas中的两个数据帧之间有效地搜索?

如何在两个 DataFrame 之间有效地匹配文本

如何根据其中一个数组中的值有效地对两个数组进行排序?

如何在python中有效地将字典中的值分组

有效地根据其他两个数组过滤数组

如何有效地合并并可能对两个数组进行卷积?

在两个列表中有效地查找项目Python

在 Python 中有效地比较两个文件中的行

如何在C ++中有效地将数字值重新分配给字符数组

如何在javascript中有效地匹配字符串中间的数字?

如何在Javascript中有效地匹配和分组字符串?

有效地从第三个数组中的两个数组中获取每对元素的最小值

如何在python 3中有效地将原始字节写入numpy数组数据

在熊猫中有效地合并两个数据框的列和行明智

如何有效地建立这个数组?

如何在Julia中有效地初始化巨大的稀疏数组?

如何在Java中有效地使用常量值初始化数组

如何在 v8 中有效地实例化 JavaScript 数组文字?

如何使用python有效地匹配两个大列表之间的字符串?(510.000.000比较)

如何有效地找到与第二个数组值匹配的第一个数组值的索引?

如何有效地找到两个列表中匹配元素的索引

如何在SQL中有效地计算列值的出现?

如何在R中有效地找到超过阈值的最长值序列