2013-03-13 88 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