数组的切片模式支持使用slice
类型的start:end:step
切片,还可以直接传入列表指定某个维度的索引进行切片:
target = np.arange(9).reshape(3,3) target
array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
target[:-1, [0,2]]
array([[0, 2], [3, 5]])
此外,还可以利用np.ix_
在对应的维度上使用布尔索引,但此时不能使用slice
切片:
target[np.ix_([True, False, True], [True, False, True])]
array([[0, 2], [6, 8]])
target[np.ix_([1,2], [True, False, True])]
array([[3, 5], [6, 8]])
当数组维度为1维时,可以直接进行布尔索引,而无需np.ix_
:
new = target.reshape(-1) new[new%2==0]
array([0, 2, 4, 6, 8])