Python 为什么切片阵列会重塑它?

Python 为什么切片阵列会重塑它?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个nx1阵列,一个: array([[0], [0], [0]]) 当我把它切成薄片的时候 a[:-1,0] 它变成: a([0,0]) 我不能在绘图中使用它(现在尺寸是错误的,即使长度是正确的)。我试过了 a[:-1,0].T 及 无济于事 如何在不改变形状的情况下进行切片?(我想以列的形式保存它)说a=numpy.zeros((3,1)),然后 b = a[:-1,:] 将给您一个列向量 array([[ 0.],

我有一个nx1阵列,一个:

array([[0],
       [0],
       [0]])
当我把它切成薄片的时候

a[:-1,0]
它变成:

a([0,0])
我不能在绘图中使用它(现在尺寸是错误的,即使长度是正确的)。我试过了

a[:-1,0].T

无济于事

如何在不改变形状的情况下进行切片?(我想以列的形式保存它)

a=numpy.zeros((3,1))
,然后

    b = a[:-1,:]
将给您一个列向量

    array([[ 0.],
           [ 0.]])

切片numpy数组时,必须区分寻址列的内容(例如
a[:,0]
)和寻址列本身(例如
a[:,0:1]
或-在本例中为
a[:,:]

a[:-1,:1]==a[:-1,0:1]
也可以从包含多个列的数组中拉出第0列。[在这里,我认为即使是
a[:-1]
也足够了。]对于二维数组,还可以选择使用
矩阵
,即使在访问单个列或行时,它也会保留其二维形状。如果访问单个元素,它将返回单个标量,而不是形状数组
(1,1)
    array([[ 0.],
           [ 0.]])