Numpy 如何使用布尔数组跳过数组中元素的昂贵计算?
在numpy中有没有一种方法可以使用布尔数组跳过数组中某些元素的计算?每当Numpy 如何使用布尔数组跳过数组中元素的昂贵计算?,numpy,numpy-ndarray,short-circuiting,Numpy,Numpy Ndarray,Short Circuiting,在numpy中有没有一种方法可以使用布尔数组跳过数组中某些元素的计算?每当bool\u arr中的相应元素为False时,我希望它跳过对昂贵*arr的评估 results = bool_arr & (expensive * arr) 此代码不会短路,和运算符不适合,因为它不进行元素计算,numpy中是否有其他优雅的解决方案?您可以使用bool\u arr处理数组的一个子集,因为昂贵因此可以在一小组值上运行,例如: results = bool_arr results[bool_ar
bool\u arr
中的相应元素为False
时,我希望它跳过对昂贵*arr
的评估
results = bool_arr & (expensive * arr)
此代码不会短路,
和
运算符不适合,因为它不进行元素计算,numpy中是否有其他优雅的解决方案?您可以使用bool\u arr
处理数组的一个子集,因为昂贵
因此可以在一小组值上运行,例如:
results = bool_arr
results[bool_arr] = expensive * arr[bool_arr]
results=bool\u arr
结果[bool_arr]=昂贵的*arr[bool_arr]
Someufunc
takeout
和where
用于进行此类掩蔽的参数。我还没有看到相对速度优势。