【发布时间】:2021-08-08 07:33:42
【问题描述】:
我有一个数组x,
x = [[1,2,3,...,7,8,9],
[1,2,3,...,7,9,8],
...,
[9,8,7,...,3,1,2],
[9,8,7,...,3,2,1]]
我还为每一列设置了一个不允许的数字数组。我想选择每列中只允许字符的所有行。例如,我可能只想要第一列中没有任何[1,2,3] 的行;我可以这样做,
x[~np.in1d(x[:,0], [1,2,3])]
对于任何单个列,我都可以做到这一点。但我希望基本上一次对 all 列执行此操作,只选择每个元素是其列的允许编号的行。我似乎无法让 x.any 或 x.all 做好这件事 - 我该怎么做?
编辑:为了澄清,每列的不允许数字是不同的。实际上,我会有一些数组 y,
y = [[1,4,...,7,8],
[2,5,...,9,4],
[3,6,...,8,6]]
我想要来自 x 的行,其中第 1 列不能在 [1,2,3] 中,第 2 列不能在 [4,5,6] 中,依此类推。
【问题讨论】:
标签: python numpy numpy-ndarray numpy-slicing