擅长:python、mysql、java
<p>奇特的索引要求您为每个维度提供所有索引。您为第一个索引提供了3个索引,而第二个索引仅提供了2个索引,因此出现了错误。你想这样做:</p>
<pre><code>>>> a[[[0, 0], [1, 1], [3, 3]], [[0,2], [0,2], [0, 2]]]
array([[ 0, 2],
[ 4, 6],
[12, 14]])
</code></pre>
<p>这当然是一个痛苦的写作,所以你可以让广播帮助你:</p>
<pre><code>>>> a[[[0], [1], [3]], [0, 2]]
array([[ 0, 2],
[ 4, 6],
[12, 14]])
</code></pre>
<p>如果使用数组而不是列表编制索引,则此操作要简单得多:</p>
<pre><code>>>> row_idx = np.array([0, 1, 3])
>>> col_idx = np.array([0, 2])
>>> a[row_idx[:, None], col_idx]
array([[ 0, 2],
[ 4, 6],
[12, 14]])
</code></pre>