gpt4 book ai didi

python - numpy:在另一个表中查找所有出现的元素

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:24 24 4
gpt4 key购买 nike

我在根据给定的转换表转换 numpy 数组中的元素时遇到问题。假设我有一个 2D 转换表 trTab,例如

import numpy as np
trTab = np.array([[0, 1, 2, 3 ,4, 5,
[5, 2, 3, 1, 0, 4]])

其中 trTab[0, :] 包含所有可能的 id(整数),而 trTab[1, :] 它们的翻译将在以后使用。 trTab 两行中的 id 是唯一的。然后我需要翻译帧 numpy 数组第一列中的所有 id,比如说

frame = np.array([[0, ...],
[3, ...],
[5, ...],
[1, ...]])

现在它等于 [[5, ...], [1, ...], [4, ...], [2, ...]],即 0->53->15->41->2.

frame 可以有不同的行数,事实上我需要翻译一长串帧。 frame 第 0 列中的 ID 不必按顺序排列,也不需要使用所有可能的 ID。

是否有任何简单快速的方法根据给定的 trTab 转换每个这样的帧数组,而不是通过简单地遍历所有 fr[:, 0] 值?如果要处理几千帧,循环会花费太多时间。

最佳答案

如果trTab第一行和frame第一列总是数字,你可以这样做:

import numpy as np
from numpy import subtract as s
fancy_indices = np.absolute(s.outer(frame[:,0],trTab[0,:])).argmin(axis=1)
frame[:,0] = trTab[1,:][fancy_indices]

关于python - numpy:在另一个表中查找所有出现的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com