迭代python数组并查找50个值的mean/min/max

迭代python数组并查找50个值的mean/min/max,python,arrays,numpy,mean,numpy-ndarray,Python,Arrays,Numpy,Mean,Numpy Ndarray,我有一个数组,我想把它分成子数组。我需要知道前50个值的平均值/最小值/最大值,然后是下一个值,依此类推。我想把mean,min,max保存在另一个矩阵中。目前,我正以这种方式解决这个问题: np.array([[a[0:50].mean(), a[0:50].min(), a[0:50].max()], [a[51:100].mean(), a[51:100].min(), a[51:100].max()],...]) a是矩阵。 现在,它适用于非常小的阵列,但我需要它用

我有一个数组,我想把它分成子数组。我需要知道前50个值的平均值/最小值/最大值,然后是下一个值,依此类推。我想把mean,min,max保存在另一个矩阵中。目前,我正以这种方式解决这个问题:

np.array([[a[0:50].mean(), a[0:50].min(), a[0:50].max()],
          [a[51:100].mean(), a[51:100].min(), a[51:100].max()],...])
a是矩阵。 现在,它适用于非常小的阵列,但我需要它用于更大的阵列。我曾想用for或while循环解决这个问题,但我尝试的一切都失败了。

使用:

输出:
这里不是完整的解决方案,而是我的输入,这应该会有所帮助

基本上,获得数组的长度,分割点,然后使用np.split将它们分开

#获取数组的长度,除以50。
#转换成整数,这样就没有小数了
五十秒=整数(长度(np.数组)/50)
#将其转换为一个数组进行处理
五十年代=np.arange(五十年代)
#获取分割点
#这可以合并到上面的命令中
五十年代的我:
五十[我]=五十[我]*50
#每50个将阵列拆分为阵列上的新阵列/维度
newarray=np.split(np.array,五十)
#遍历每个新数组
#len(newarray)给出数组的数量,从1开始,而不是0
对于范围内的i(1,len(新阵列):
打印('Group'+str(i)+':')
打印(newarray[i].mean())
打印(newarray[i].min())
打印(newarray[i].max())
输出:

第一组:
24.5
49
0
第2组:
74.5
99
50
第三组:
127.0
154
一百

我希望这有帮助

a = np.array(range(200))

b = np.array([[x.mean(), x.min(), x.max()] 
              for x in np.array_split(a, a.shape[0]/50)])
>>> b
array([[ 24.5,   0. ,  49. ],
       [ 74.5,  50. ,  99. ],
       [124.5, 100. , 149. ],
       [174.5, 150. , 199. ]])