我有一个包含x行3列的2D数组,每列都有一个条件,当其中一个元素不满足约束条件时如何删除行
For example:
5<[:,0]<10
5<[:,1]<10
1<[:,2]<3
[[1, 2, 3 ],
[4, 5, 6],
[7, 8, 9],
[9, 9, 1]]
Result should be
[[9,9,1]]
答案 0 :(得分:0)
def comply(row):
if row[0] > 5 and row[0] < 10 and row[1] > 5 and row[1] < 10 and row[2] > 1 and row[2] < 3:
return True
else:
return False
result = []
A = [[1, 2, 3 ],
[4, 5, 6],
[7, 8, 9],
[9, 9, 1]]
for row in A:
if comply(row):
result.append(row)
答案 1 :(得分:0)
下面的表达式仅获取符合条件的行。
new = arr[(arr >= [5,5,1]).all(1) & (arr < [10,10,3]).all(1)]
要获得预期结果,您需要将条件更改为>=
,因为1不大于1:)