【问题标题】:Calculating conditional medians of a numpy array计算 numpy 数组的条件中位数
【发布时间】:2020-05-25 11:25:57
【问题描述】:

我有一个 numpy 数组 X 的形式

[ A 1 a1 ]
[ A 2 a2 ]
[ A 3 a3 ]
[ B 1 b1 ]
[ B 2 b2 ]
[ B 3 b3 ]
[ B 4 b4 ]
[ C 1 c1 ]
[ C 2 c2 ]
[ C 3 c3 ]
[ C 4 c4 ]
[ C 5 c5 ]

在哪里

  • (A, B, C) 对应不同的实验设置,
  • (1, 2, 3, ...) 对应于实验的独立重复,并且
  • (a1、b2 等)对应于每次复制时进行的测量

我需要减少这个数组,以包含每个实验设置发生的情况的摘要,例如输出数组

[ A median(a1, a2, a3) ]
[ B median(b1, b2, b3, b4) ]
[ C median(c1, c2, c3, c4, c5) ]

我想这样做无需表明

i) 有多少种不同的实验设置,以及

ii) 每个实验进行了多少次重复。

我怀疑这应该可以通过某种掩蔽来实现,例如像中值(X[:,2] 这样 X[:,0] = a),以某种方式迭代 a,但我不确定这样做的语法。

【问题讨论】:

    标签: python arrays numpy median


    【解决方案1】:
    import numpy as np
    
    experiments = np.unique(X[:,0])
    medians = []
    for experiment in experiments:
        l = [experiment]
        l.append(np.median(X[X[:,0]==experiment, 2]))
        medians.append(l)
    medians = np.array(medians)
    

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2019-03-02
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2017-08-03
      • 2021-09-28
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多