具有下列距离矩阵
dist
:
dist = [[[ 0, 0],
[ 5, 0],
[ 1, 0],
[ 1, 1],
[11, 3],
[ 3, 6],
[ 5, 5]],
[[ 5, 0],
[ 0, 0],
[ 6, 0],
[ 4, 1],
[ 6, 3],
[ 2, 6],
[10, 5]],
[[ 1, 0],
[ 6, 0],
[ 0, 0],
[ 2, 1],
[12, 3],
[ 4, 6],
[ 4, 5]],
[[ 1, 1],
[ 4, 1],
[ 2, 1],
[ 0, 0],
[10, 2],
[ 2, 7],
[ 6, 6]],
[[11, 3],
[ 6, 3],
[12, 3],
[10, 2],
[ 0, 0],
[ 8, 9],
[16, 8]],
[[ 3, 6],
[ 2, 6],
[ 4, 6],
[ 2, 7],
[ 8, 9],
[ 0, 0],
[ 8, 1]],
[[ 5, 5],
[10, 5],
[ 4, 5],
[ 6, 6],
[16, 8],
[ 8, 1],
[ 0, 0]]]
我需要建立一个
generator expression
具有
AND
这种情况:
gexp = (dist[:, :, 0] <= 1) & (dist[:, :, 1] <= 2)
意思是我想要一个
True
当两个条件都成立时(对于列0和列1),如下所示(我将其打印为列表理解语法):
[array([[ True, False, True, True, False, False, False],
[False, True, False, False, False, False, False],
[ True, False, True, False, False, False, False],
[ True, False, False, True, False, False, False],
[False, False, False, False, True, False, False],
[False, False, False, False, False, True, False],
[False, False, False, False, False, False, True]])]
我有一个列列表:
columns = ['weight', 'height']
它们的阈值:
thresholds = {'weight': 1.0, 'height': 1.0}
以及相应的指标:
indexes = {'weight': 0, 'height': 1}
我试图以这种方式构建生成器表达式:
dynamic_gexpr = [dist[:,:,indexes.get(column)] <= thresholds.get(column) for column in columns]
但我不知道如何在一列和另一列之间添加AND条件。上面的表达式似乎更像或条件一样处理它,给出以下输出:
[array([[ True, False, True, True, False, False, False],
[False, True, False, False, False, False, False],
[ True, False, True, False, False, False, False],
[ True, False, False, True, False, False, False],
[False, False, False, False, True, False, False],
[False, False, False, False, False, True, False],
[False, False, False, False, False, False, True]]), array([[ True, True, True, True, False, False, False],
[ True, True, True, True, False, False, False],
[ True, True, True, True, False, False, False],
[ True, True, True, True, False, False, False],
[False, False, False, False, True, False, False],
[False, False, False, False, False, True, True],
[False, False, False, False, False, True, True]])]