考虑 4 列数组 Q 的一个小样本。我的目标是消除 Q 的行,其中BOTH columns 0 and 2 are equal, AND columns 1 and 3 are equal。所以,[1, 2, 1, 2]需要去,也一样[3, 4, 3, 4]。我认为下面的代码会起作用。
import numpy as np
Q = np.array([[1, 2, 1, 2],
[1, 2, 1, 4],
[2, 4, 3, 4],
[3, 4, 3, 4],
[4, 7, 2, 5]])
output = Q[np.where(np.logical_and(Q[:,0] != Q[:, 2], Q[:,1] != Q[:, 3]))]
print(output)
[[4 7 2 5]]
此代码消除了所需的两行,但它也删除了[1, 2, 1, 4]和[2, 4, 3, 4]。
换句话说,它正在做:
“如果 V[:,0] != V[:, 2] 则删除记录,如果 V[:,1] != V[:, 3] 也删除记录”。
我希望它:“如果 V[:,0] != V[:, 2] 和 V[:,1] != V[:, 3] 都删除记录”。
这不是 logical_and 的意思吗?
对我所缺少的有什么见解吗?
冉冉说
沧海一幻觉
随时随地看视频慕课网APP
相关分类