把一个一维数组转置有如下几种方法。就是把 一行 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 的第一个元素被改变了