把一个一维数组转置有如下几种方法。就是把 一行 n列的数组 转换成 n 行一列的数组,
如 如 [1,2,3,4] => [[1]
[2]
[3]
[4]]
方法一: np.transpose([a]),
方法二:a.reshape(len(a),-1),
方法三:a[:,None].
区别是 transpose()返回copy, reshape() [,None] 是引用。举例如下:
import numpy as np a=np.arange(4) print a b=np.transpose([a]) b[0][0]=-1 print b print a a=np.arange(4) b=a[:,None] b[0][0]=-1 print b print a a=np.arange(4) b=a.reshape(len(a),1) b[0][0]=-1 print b print a
方法一输出:
a: [0 1 2 3] b: [[-1] [ 1] [ 2] [ 3]] a: [0 1 2 3] //a 没有变
方法二、三输出:
b:[[-1] [ 1] [ 2] [ 3]] b:[-1 1 2 3] //a 的第一个元素被改变了