2013-03-13 90 views
2

我有一個三維數組,比如dat.shape =(100,128,256)。我試圖計算第一個軸上的值大於10.0的週期數。例如,對於dat [:,0,0],大於10.0的值會出現多少次?然後,dat [:,0,1]到dat [:,n,m]。我的結束矩陣將具有(128,156)的形狀。python numpy/scipy查找多維數組中相對變量的個數或頻率

有沒有辦法做到這種計算在numpy或scipy沒有循環的第一和第二維?

非常感謝!

+0

http://docs.scipy.org/doc/numpy/reference/routines.sort.html – heltonbiker 2013-03-13 22:03:30

回答

3
import numpy as np 
a = np.random.randint(0, 100, (100,128,256)) 
np.sum(a > 10, axis=0) 
+0

如果我理解這一點,'sum'沿軸線給定執行的總和,並在此'一個> 10'返回'bool'並且在python中真值是相等的,那麼在這種情況下'sum'就相當於計數,對吧? – heltonbiker 2013-03-13 22:07:15

+0

基本上,但它會比編寫本地循環更高效。 – aestrivex 2013-03-13 22:13:14

+0

謝謝!這很奇妙。 – NPB 2013-03-13 22:32:34