Numpy中的dimshuffle等效函数

时间:2015-10-30 12:49:53

标签: python numpy theano

我经常使用theano.tensor.dimshuffle。 Numpy有相同的功能吗?

我想我可以通过多个numpy.swapaxesnumpy.newaxis(对于广播维度)numpy.reshape执行相同操作,但是有一些更简单或更直接的方法,就像{{1}一样}?

1 个答案:

答案 0 :(得分:9)

函数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返回数据视图。在theano中也可能是这种情况,但可能取决于代码的优化方式。