我有一个大的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数组。我尝试过使用concatenate的多种方法,看起来像这些例子:
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数组。谁能指出我正确的方向?任何帮助表示赞赏。
答案 0 :(得分:4)
按如下方式切出数据:
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]]
答案 1 :(得分:3)
我认为这会做你想做的事情:
a[:,[3,4]]
答案 2 :(得分:1)
您还可以使用zip
:
>>> c = numpy.array( zip( a[:, 3], a[:, 4]) )
>>> c
array([[4, 5],
[4, 5],
[4, 5],
[4, 5],
[4, 5],
[4, 5]])