Py学习  »  Jeppe  »  全部回复
回复总数  1
6 年前
回复了 Jeppe 创建的主题 » Python生成器表达式:如何从循环中添加和条件?

如果您添加更多的列,这应该会扩展。 arrays 将为每个条件保存一个数组。每一个都是通过 reduce 从而累积 bitwise_and 所有阵列中。

import numpy as np
from functools import reduce
columns = ['weight', 'height']
thresholds = {'weight': 1.0, 'height': 1.0}
indexes = {'weight': 0, 'height': 1}

l = np.array(dist)
arrays = [(l[:, :, indexes[column]] <= thresholds[column]) for column in columns]
l2 = reduce(lambda a, acc : np.bitwise_and(a, acc), arrays)
print(l2)

输出:

[[ 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]]