按列选择1d-array

时间:2015-09-28 12:32:20

标签: python numpy indexing

我有两个numpy数组:

array_1.shape = (10000,15)
array_2.shape = (435,)

我想从array_1中选择一个子数组,其中第一列(array_1[:,0])等于array_2的元素之一。类似于array_1[array_1[:,0]==array_2]

1 个答案:

答案 0 :(得分:3)

由于这些是numpy数组,您可以使用np.in1d在array_2中查找array_1 [:,0]元素的索引,然后使用此结果索引array_1。

inArray2 = np.in1d(array_1[:, 0], array_2)给出一个长度为array_1.shape[0]的布尔数组,如果array_1[i, 0]位于array_2中,则索引i的值等于 True False 否则。

所以array_1[inArray2]给出了预期的输出。