我有一個數組,並且想要更改某些元素(如果它們是否定的)(可以是任何布爾條件),但是我也想知道我的代碼是否做到了這一點。python數組條件更改元素檢查numpy
目前我有
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」是Python的 - 也是我通常處理超過1E6元素的數組 - 然後循環 - 這樣我有點擔心執行檢查兩次的性能影響(一旦'Check'數組被創建時 - 然後當總結所有元素時再次檢查它們中的一個是否爲'真')。
有沒有人知道這樣做的更好(更有效率)的方式?
作爲一個方面說明,變量名應該是python中的小寫字母,並且類名的第一個字母是大寫。如果您大致遵循[PEP8](http://www.python.org/dev/peps/pep-0008/)指示,則其他人更容易閱讀您的代碼。 –
我一般在這個應用程序中使用矩陣(/ numpy數組)的大寫字母 - 但我認爲這是一個很好的做法,使事情與商定的標準保持一致。 @ J.Martinot-Lagarde – CastleH