指定された変換テーブルに従って、numpy 配列内の要素を変換する際に問題があります。たとえば、2D 変換テーブル trTab があるとします。
import numpy as np
trTab = np.array([[0, 1, 2, 3 ,4, 5,
[5, 2, 3, 1, 0, 4]])
where にtrTab[0, :]
は可能なすべての ID (整数) が保持trTab[1, :]
され、後で使用されるそれらの翻訳が保持されます。の両方の行の IDtrTab
は一意です。次に、フレームの numpy 配列の最初の列にあるすべての ID を変換する必要があります。
frame = np.array([[0, ...],
[3, ...],
[5, ...],
[1, ...]])
これで、 、、、および と[[5, ...], [1, ...], [4, ...], [2, ...]]
等しくなります。0->5
3->1
5->4
1->2
frame
行数が異なる可能性があります。実際には、長い一連のフレームを変換する必要があります。0 番目の列の ID はframe
順番通りである必要はなく、可能なすべての ID を使用する必要はありません。
すべての値trTab
を単純にループするのではなく、そのような各フレーム配列を指定に従って変換する簡単で高速な方法はありますか? fr[:, 0]
処理するフレーム数が数千の場合、ループは非常に時間がかかります。