如何重载和(和)子句过滤 Numpy 数组?



:

A = np.array(...)
conditions = [(A > 1), (A < 2)]                         # how to do something like these?
filtered = A[&(condition for condition in conditions)]  #

在少数情况下,可以通过,例如filtered = A[(A > 1) & (A < 2)];但是否有可能以一种更可扩展的方式做到这一点?

让我们在np.logical_and中对条件列表使用解包操作符。

arr = np.random.random((10,))
conditions = [arr>0.2, arr**2<=0.5] #list of conditions
arr[np.logical_and(*conditions)]    #unpack conditions inside logical_and with *
array([0.33208271, 0.22984103, 0.58209428, 0.37531787, 0.69639457])

最新更新