删除数组中的特定列

时间:2018-04-12 08:33:20

标签: python arrays numpy indexing

我有一个大小为NxD的numpy数组,叫做X.

我创建了一个大小为D的掩码,由一个numpy向量表示,1和0称为ind_delete

我想在ind_delete中删除对应于1的所有X列。

我试过了:

X = np.delete(X,ind_delete,1)

但它显然不起作用。我试图在python上找到一个简单的方法,但是因为它在matlab中是微不足道的,所以在这里看起来并不多。感谢您指出实现它的最佳方法。

2 个答案:

答案 0 :(得分:2)

Boolean array indexing

>>> x = np.array([[1, 2, 3],
...               [4, 5, 6]])
>>> d = np.array([1, 0, 1])
>>> x[:, d==1]
array([[1, 3],
       [4, 6]])

答案 1 :(得分:0)

您需要创建一个布尔数组,然后您可以选择所需的内容:

X = X[ind_delete!=1]

选择值不为1的位置。