如果您添加更多的列,这应该会扩展。
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]]