ex_array = [-8.23294593e-02, -4.07239507e-02,  6.08131029e-02,  2.72433402e-02,
   -4.73587631e-02,  5.15452252e-02,  1.32902476e-01,  1.22322232e-01,
    2.71845990e-02, -1.16927038e-01, -2.62239877e-01, -1.46526396e-01,
   -1.82859136e-01, -1.02089602e-01, -1.91863501e-04, -5.42572200e-02,
   -1.41798506e-01,  2.32538185e-02,  1.44525705e-01,  1.33945461e-01,
    5.01618120e-02, -1.32664337e-01, -2.97395262e-01, -1.02531532e-01,
   -7.80204566e-02, -5.46991495e-02,  1.05868862e-01,  7.25526818e-03,
    5.04192997e-02,  7.41281286e-02,  1.75069159e-01,  1.64488914e-01,
    7.55396024e-02, -6.23800645e-02, -1.76950023e-01, -5.91491004e-02,
   -4.00535768e-02,  6.59473071e-04,  5.98125666e-02, -1.49608356e-02,
   -1.45519585e-02,  1.49876707e-01,  1.92880709e-01,  2.33158881e-01,
    7.59751625e-02, -2.46659059e-02, -1.40025102e-01, -3.02416639e-02]

I need to compute the median for every 12 values.每个值表示一个月(从1月到12月),因此我想获得一年中每个月的中值.像这样:

Representation of what I'm asking

方法:

  • 我可以将数组转换为数据帧,并添加一个表示每个月的新列.然后,按月份分组并计算中位数.但我觉得这必须是一个更简单的解决方案.

  • 我想的另一个解决方案是转换为数据帧,每12个值切片一次,每次都从不同的值开始.它可以工作,但我在获取可行的数组时遇到了问题.为前三个月添加示例:

'''

sol_array = []

sol_array.append(pd.DataFrame(ex_array).iloc[0::12].median().to_string())
sol_array.append(pd.DataFrame(ex_array).iloc[1::12].median().to_string())
sol_array.append(pd.DataFrame(ex_array).iloc[2::12].median().to_string())

但这就是结果.0和撇号不应该在那里.

['0   -0.075844',
 '0   -0.089111',
 '0    0.042705',
 '0    0.002147',
 '0   -0.010528',
 '0    0.109443',
 '0    0.198334',
 '0    0.20983',
 '0    0.075139',
 '0   -0.062405']

所以,做you know another way to obtain the same outcome.我只有120个值,所以手动排列组(只有10组)仍然可行,但我觉得这不是一个理想的解决方案.

Or, do you know how to correct the above method I and obtain a workable array?

推荐答案

让我们使用numpy个操作:

np.median(np.reshape(ex_array, (12, -1), 'F'), axis=1)

array([-0.08017496, -0.04771155,  0.06031283, -0.00385278, -0.03095536,
        0.06283668,  0.15979743,  0.14921719,  0.06285071, -0.08965355,
       -0.21959495, -0.08084032])

Python相关问答推荐

为什么sys.exit()不能与subproccess.run()或subprocess.call()一起使用

在pandas中使用group_by,但有条件

如何在UserSerializer中添加显式字段?

根据列值添加时区

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

如何使用Numpy. stracards重新编写滚动和?

将scipy. sparse矩阵直接保存为常规txt文件

使用Python从rotowire中抓取MLB每日阵容

Python全局变量递归得到不同的结果

matplotlib图中的复杂箭头形状

从列表中获取n个元素,其中list [i][0]== value''

交替字符串位置的正则表达式

如何在Python中将超链接添加到PDF中每个页面的顶部?

在第一次调用时使用不同行为的re. sub的最佳方式

为什么我只用exec()函数运行了一次文件,而Python却运行了两次?

对于标准的原始类型注释,从键入`和`从www.example.com `?

如何在Pandas中用迭代器求一个序列的平均值?

突出显示两幅图像之间的变化或差异区域

使用BeautifulSoap库从Web获取表格时没有响应

将COLUMN BY GROUP中的值连接为列表,并将其赋值给PANAS数据框中的变量