把一個一維數組轉置有如下幾種方法。就是把 一行 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 的第一個元素被改變了
