我們初始化與零的numpy的陣列波紋管:測試是否numpy的數組只包含零
np.zeros((N,N+1))
但是我們如何檢查在一個給定的N * N numpy的數組矩陣的所有元素是否爲零。
該方法只需要返回一個True,如果所有的值都爲零。
我們初始化與零的numpy的陣列波紋管:測試是否numpy的數組只包含零
np.zeros((N,N+1))
但是我們如何檢查在一個給定的N * N numpy的數組矩陣的所有元素是否爲零。
該方法只需要返回一個True,如果所有的值都爲零。
>>> np.count_nonzero(np.eye(4))
4
>>> np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]])
5
我會用np.all這裏,如果你有一個數組:
>>> np.all(a==0)
我喜歡非零個值這個答案檢查,以及。例如,可以通過執行'np.all(a == a [0])'來檢查數組中的所有元素是否相同。非常感謝! –
張貼在這裏會工作的其他答案,但使用最清晰,最有效的功能是numpy.any()
:
>>> all_zeros = not np.any(a)
或
>>> all_zeros = not a.any()
numpy.all(a==0)
更受歡迎,因爲它使用更少的RAM。 (它不需要由a==0
術語創建的臨時陣列。)numpy.count_nonzero(a)
更快,因爲它可以在找到第一個非零元素時立即返回。我不確定我是否同意這是最明智的解決方案。 – Akavall
如果你對所有零測試,以避免對其他numpy的功能,然後包裝在一個try行警告,除非塊將保存有你感興趣的,即在手術前做測試的零
try: # removes output noise for empty slice
mean = np.mean(array)
except:
mean = 0
你會想'不np.count_nonzero(np.eye(4))'返回TRUE;只有當所有的值都爲0。 –