对列的调用给出行向量而不是列向量python

时间:2014-04-14 13:54:02

标签: python-2.7

嘿我做了一个循环,我必须通过在X估计中添加另一列来重复更新列向量X估计,但是每当我在这个x估计中调用一个列时它给了我一个行向量而我无法重新定义使用vstack将输出行作为一列,因为我将无法再在循环开始时将其插入到新计算所需的位置

在xestimate的输出下面

Xest = [[ 0.      0.   ]
        [ 1.      1.   ]
        [ 1.      1.0001]
        [ 1.      1.0001]]

稍后调用'Xest [:,0]' 输出>> '[0 1 1 1]'

然而我需要它成为一个专栏,

'[[0],  [1],  [1  [1]]'

我真的不了解调用[:,0]它应该是一个列,如果不是吗? 感谢

1 个答案:

答案 0 :(得分:0)

我理解Xest是一个numpy数组。

快速回答: 您可以使用np.vstack(Xest[:,0])或更好的Xest[:,0][:, np.newaxis]

获取所需内容

答案稍长: 你为什么要那样做?大多数情况下,你没有,只是依靠广播来为你做。在numpy中没有“列向量”这样的东西,因此大多数情况下可以使用普通的“行向量”来处理。对于那些需要区分的极端情况,您可以像[:, np.newaxis]一样制作视图并进行大步调整。

完全理由: 想象一下,你有一个10维的数组,你想要一个向量。你真的想要一个类似[[[[[[[[[[1, 1, 1, 1 ...]]]]]]]]]]的数组吗? Numpy旨在使用任意维度,因此,设计用于一般情况。