y = np.array([1, 1, 0, 0])
print("Y 1:", y)
y = y.T
print("Y 2:", y)
两者打印相同:
[1,1,0,0]
numpy数组a = [1,1,0,0]
的形状为[4,]
,而b= [[1,1,0,0]]
的形状为[1,4]
。我可以说a是向量,b是矩阵。因此,转置操作不适用于矢量,因此两个打印件是相同的。
答案 0 :(得分:2)
从文档here中可以看到,转置一维数组将返回原始数组的不变视图。在您的情况下,y
是一维数组,因此转置输出将保持不变。
答案 1 :(得分:1)
numpy将1d“向量”与2d“行向量”和“列向量”区分开。通常使用类似的方法在它们之间切换:
# create 1d vector
v = np.array([1, 1, 0, 0])
# row vector
rv = v[np.newaxis, :]
# column vector
cv = v[:, np.newaxis]
请注意np.newaxis
is defined to be None
,因此您经常会看到这样写的内容,例如v[:,None]
,并且因为需要列向量是一种常见的操作,所以np.c_[v]
这样的速记方式难以理解
现在rv
和cv
是二维的,它们可以像您期望的那样transposed
切换回一维向量的方法类似:
# from row vector
v = rv[0, :]
# from column vector
v = cv[:, 0]