回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>假设我有以下numpy数组:</p>
<pre><code>>>a
array([[0, 0, 2],
[2, 0, 1],
[2, 2, 1]])
>>b
array([[2, 2, 0],
[2, 0, 2],
[1, 1, 2]])
</code></pre>
<p>然后垂直堆叠</p>
^{pr2}$
<p>导致:</p>
<pre><code>>>c
array([[[0, 2],
[0, 2],
[2, 0]],
[[2, 2],
[0, 0],
[1, 2]],
[[2, 1],
[2, 1],
[1, 2]]])
</code></pre>
<p>由此,我希望,对于c的每个3d维,检查这个子数组中存在哪个组合,然后根据列表匹配的索引对其进行编号。我试过下面的方法,但没用。对于双for循环,该算法非常简单,但是由于c非常大,它的速度非常慢。在</p>
<pre><code>classes=[(0,0),(2,1),(2,2)]
out=np.select( [h==c for h in classes], range(len(classes)), default=-1)
</code></pre>
<p>我想要的输出是</p>
<pre><code>out = [[-1,-1,-1],
[3, 1,-1],
[2, 2,-1]]
</code></pre>