numpy行/列到一维向量?

时间:2018-12-12 15:22:29

标签: python numpy

我有行/列向量:

row = np.r_['r', [1, 2]]
col = np.r_['c', [1, 2]]

我想将它们转换为一维数组,等效于

np.array([1, 2])

我尝试了ravel, flatten, squeeze,但是它们都返回了原始数组(二维数组)。

我的问题是

  • 他们为什么不工作?
  • 什么是合适的方式?

2 个答案:

答案 0 :(得分:1)

在这种情况下,np.r_正在创建矩阵

row = np.r_['r', [1, 2]]
col = np.r_['c', [1, 2]]

print(type(row))
# numpy.matrixlib.defmatrix.matrix

您可以先将它们转换为数组来使其扁平化

print(np.array(row).flatten().shape)
# (2,)

答案 1 :(得分:1)

您有矩阵而不是数组,这就是为什么in不起作用的原因。

在矩阵上创建视图并重塑形状:

np.asarray(row).reshape(-1)