我经常使用theano.tensor.dimshuffle
。 Numpy有相同的功能吗?
我想我可以通过多个numpy.swapaxes
和numpy.newaxis
(对于广播维度)numpy.reshape
执行相同操作,但是有一些更简单或更直接的方法,就像{{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中,可以使用transpose
和reshape
的组合来实现。
请注意,在numpy中,尽可能使transpose
返回数据视图。在theano中也可能是这种情况,但可能取决于代码的优化方式。