现在的位置: 首页 > 综合 > 正文

谈一点numpy.transpose()矩阵转置操作

2013年07月27日 ⁄ 综合 ⁄ 共 363字 ⁄ 字号 评论关闭

最近用了矩阵转置 numpy.transpose(),发现了一点有趣的现象:

x=linspace(0,4,5)

array([0.,1.,2.,3.,4.])

x.shape

(5, )

想把x从一行,变成一列,如下直接转置会失败:

y=transpose(x)

正确的做法是:

x.shape=(5,1)
y=transpose(x)

查看结果:

y

array([[0.,1.,2.,3.,4.]])

y.shape

(1,5)

原来transpose的操作依赖于shape参数,对于一维的shape,转置是不起作用的.

这点matlab倒是显得很人性化,里面的一维向量转置很方便.例如

x=1:10;%一维行向量
y=x';%一维列向量

当然Python中Numpy的实现机制,是基于类的,这和Matlab完全不一样.这点在数组(矩阵)转置的时候也有所体现.

抱歉!评论已关闭.