Python 如何将2d numpy数组的一行作为2d数组获取

Python 如何将2d numpy数组的一行作为2d数组获取,python,arrays,numpy,Python,Arrays,Numpy,如何从NxM numpy数组中选择一行作为大小为1xM的数组: > import numpy > a = numpy.array([[1,2], [3,4], [5,6]]) > a array([[1, 2], [3, 4], [5, 6]]) > a.shape (e, 2) > a[0] array([1, 2]) > a[0].shape (2,) 我想要 a[0].shape == (1,2) 我这样做是因为我想要使用

如何从NxM numpy数组中选择一行作为大小为1xM的数组:

> import numpy
> a = numpy.array([[1,2], [3,4], [5,6]])
> a
array([[1, 2],
       [3, 4],
       [5, 6]])
> a.shape
(e, 2)
> a[0]
array([1, 2])
> a[0].shape
(2,)
我想要

a[0].shape == (1,2)

我这样做是因为我想要使用的库似乎需要它。

如果您已经有了它,请调用
.reforme()

您还可以首先使用一个范围使阵列保持二维:

>>> b = a[0:1]
>>> b
array([[1, 2]])
>>> b.shape
(1, 2)

请注意,所有这些都将具有相同的备份存储。

如果您有形状
(2,)
的东西,并且您希望添加一个新轴,以便形状是
(1,2)
,最简单的方法是使用
np.newaxis

a=np.array([1,2])
a、 形状
#(2,)
b=a[np.newaxis,:]
打印b
#数组([[1,2]])
b、 形状
#(1,2)

如果您有形状
(N,2)
的某个对象,并且希望以相同的维度对其进行切片以获得形状
(1,2)
的切片,则可以使用长度范围
1
作为切片,而不是一个索引:

a=np.array([[1,2],[3,4],[5,6])
a[0:1]
#数组([[1,2]])
a[0:1]。形状
#(1,2)
另一个技巧是某些函数具有
keepdims
选项,例如:

a
#数组([[1,2],
#       [3, 4],
#       [5, 6]])
a、 总数(1)
#数组([3,7,11])
a、 总和(1,keepdims=True)
#数组([[3],
#       [ 7],
#       [11]])
>>> b = a[0:1]
>>> b
array([[1, 2]])
>>> b.shape
(1, 2)