如何使用布尔数组跳过数组中元素的昂贵计算?
How to use a boolean array to skip expensive calculations of elements in array?
在numpy中有没有办法使用布尔数组来跳过对数组中某些元素的计算?只要 bool_arr
中的相应元素是 False
.
,我希望它跳过 expensive * arr
的评估
results = bool_arr & (expensive * arr)
此代码不会短路,并且 and
运算符不适合,因为它不会按元素求值,numpy 中是否有其他优雅的解决方案?
您可以使用 bool_arr
处理数组的子集,因为 expensive
因此可以 运行 处理一小组值,例如:
results = bool_arr
results<b>[bool_arr]</b> = expensive * arr<b>[bool_arr]</b>
在numpy中有没有办法使用布尔数组来跳过对数组中某些元素的计算?只要 bool_arr
中的相应元素是 False
.
expensive * arr
的评估
results = bool_arr & (expensive * arr)
此代码不会短路,并且 and
运算符不适合,因为它不会按元素求值,numpy 中是否有其他优雅的解决方案?
您可以使用 bool_arr
处理数组的子集,因为 expensive
因此可以 运行 处理一小组值,例如:
results = bool_arr
results<b>[bool_arr]</b> = expensive * arr<b>[bool_arr]</b>