擅长:python、mysql、java
<p>有两种可能的结果重新排列(以下是<a href="https://stackoverflow.com/a/14476457/498892">@eumiro</a>的示例)。<code>Einops</code>包提供了一个强大的符号来非模糊地描述这种操作</p>
<pre class="lang-py prettyprint-override"><code>>> a = np.arange(18).reshape(9,2)
# this version corresponds to eumiro's answer
>> einops.rearrange(a, '(x y) z -> z y x', x=3)
array([[[ 0, 6, 12],
[ 2, 8, 14],
[ 4, 10, 16]],
[[ 1, 7, 13],
[ 3, 9, 15],
[ 5, 11, 17]]])
# this has the same shape, but order of elements is different (note that each paer was trasnposed)
>> einops.rearrange(a, '(x y) z -> z x y', x=3)
array([[[ 0, 2, 4],
[ 6, 8, 10],
[12, 14, 16]],
[[ 1, 3, 5],
[ 7, 9, 11],
[13, 15, 17]]])
</code></pre>