python numpy选择多个列,排除某些列-简明方法

pn9klfpd  于 2023-02-28  发布在  Python
关注(0)|答案(1)|浏览(158)

我有一个关于numpy中索引的小问题。我正在尝试选择一个2D数组的列子集。例如,如果我想要3,6和9以外的列,那么我会插入一个索引列表,排除这些位置:

x = np.arange(20).reshape(2,10)
x[:, [i for i in range(len(x[0])) if i not in [3, 6, 9]]]
[[ 0  1  2  4  5  7  8]
 [10 11 12 14 15 17 18]]

这个方法很有效,但我想知道是否有更简洁的方法来做同样的事情?

xyhw6mcr

xyhw6mcr1#

一种方法是使用numpy.delete()

import numpy as np
x = np.arange(20).reshape(2,10)
np.delete(x, [3,6,9], axis=1)

[[ 0  1  2  4  5  7  8]
 [10 11 12 14 15 17 18]]

相关问题