Python 如何使用numpy';什么是希斯塔克?

Python 如何使用numpy';什么是希斯塔克?,python,arrays,numpy,concatenation,Python,Arrays,Numpy,Concatenation,我有一个大的numpy.ndarray数组,我想从中提取第4列和第5列,并将这些列放入2D数组中。[i,0]元素应该是第4列的值,[i,1]应该是第5列的元素 我正在尝试使用numpy.hstack函数来执行此操作 a = numpy.asarray([1, 2, 3, 4, 5]) for i in range(5): a = numpy.vstack([a, numpy.asarray([1, 2, 3, 4, 5])]) combined = np.hstack([a[:,3],

我有一个大的numpy.ndarray数组,我想从中提取第4列和第5列,并将这些列放入2D数组中。[i,0]元素应该是第4列的值,[i,1]应该是第5列的元素

我正在尝试使用numpy.hstack函数来执行此操作

a = numpy.asarray([1, 2, 3, 4, 5])
for i in range(5):
    a = numpy.vstack([a, numpy.asarray([1, 2, 3, 4, 5])])

combined = np.hstack([a[:,3], a[:,4]])
然而,这只是给了我一个nx1数组。我尝试了多种使用连接的方法,如以下示例所示:

combined = np.concatenate([a[:,3], a[:,4]])

combined = np.concatenate([a[:,3], a[:,4]], axis=1)

combined = np.concatenate([a[:,3].T, a[:,4].T])

我觉得hstack是我想要的功能,但我似乎不知道如何让它给我一个nx2阵列。谁能给我指出正确的方向吗?非常感谢您的帮助。

我想这会满足您的要求:

a[:,[3,4]]

您也可以使用
zip

>>> c = numpy.array( zip( a[:, 3], a[:, 4]) )
>>> c
array([[4, 5],
       [4, 5],
       [4, 5],
       [4, 5],
       [4, 5],
       [4, 5]])

只需按如下方式分割数据:

X = [[0 1 2 3 4]
     [0 1 2 3 4]
     [0 1 2 3 4]
     [0 1 2 3 4]]

slicedX = X[:,3:5]
结果:

[[3 4]
 [3 4]
 [3 4]
 [3 4]]

如果列是连续的,最好执行
a[:,3:5]
,它返回数组的视图,而不是副本。numpy数组的“功能”或其他功能是将(
.T
)一维数组转置返回相同的内容。如果你真的想使用
hstack
,你需要先把它们做成多维的(或者至少使用
2d
或类似的),或者使用
vstack
并转置结果。也可以查看
np.column\u stack