Numpy 中的 dimshuffle 等效函数

dimshuffle equivalent function in Numpy

我经常用theano.tensor.dimshuffle。 Numpy 是否有等效的函数?

我想我可以通过几个 numpy.swapaxesnumpy.newaxis(对于广播维度)来做同样的事情,numpy.reshape 但是有没有更简单或更直接的方法,就像 dimshuffle?

函数 numpy.transpose 允许对数组的轴进行任意排列。

品种array.T是这个的特例,对应不带参数的array.transpose(),默认为array.transpose(range(array.ndim)[::-1]).

numpy.swapaxes numpy.transpose 仅限于两个轴的排列。

theano.tensor.dimshuffle 本质上对应于 numpy.transpose,但此外,它允许通过在应创建轴的位置添加 'x' 来创建长度为 1 的新轴用于广播。在 numpy 中,这可以使用 transposereshape.

的组合来实现

请注意,在 numpy 中,尽可能注意 transpose return 数据视图。在 theano 中也可能是这种情况,但可能取决于代码的优化方式。