我有一个数组,如果某些元素为负数(可能是任何布尔条件),我想更改它们,但是我也想知道我的代码是否这样做。
目前我有
Mat = #some source
Check = Mat < 0
Check_flag = Check.sum()
if check_flag != 0:
Mat[Check] = 0 #reset those elements
logger = logger + '\n This Mat needed to be fixed' #or some over logging method
这可能是最好的方法,但感觉有点“LBYL”而不是pythonic——我通常处理超过1e6个元素的数组——然后循环——所以我有点担心执行检查的性能影响两次(一次是在创建“检查”数组时 - 然后再次在对所有元素求和以查看其中一个是否为“真”时)。
有谁知道这样做更好(更有效)的方法?