最近用了矩阵转置 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)查看结果:
yarray([[0.,1.,2.,3.,4.]])
y.shape(1,5)
原来transpose的操作依赖于shape参数,对于一维的shape,转置是不起作用的.
这点matlab倒是显得很人性化,里面的一维向量转置很方便.例如
x=1:10;%一维行向量
y=x';%一维列向量当然Python中Numpy的实现机制,是基于类的,这和Matlab完全不一样.这点在数组(矩阵)转置的时候也有所体现. 版权声明:本文为rumswell原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。