【问题标题】:Standard error of values in array corresponding to values in another array数组中的值对应于另一个数组中的值的标准误差
【发布时间】:2018-12-12 22:10:46
【问题描述】:

我有一个数组,其中包含表示距离的数字,另一个表示该距离处的某些值。如何计算距离固定值处所有数据的标准误差?

标准误差是标准差/观察次数的平方根。

例如距离(d):

[1 1 14 6 1 12 14 6 6 7 4 3 7 9 1 3 3 6 5 8]

例如与距离条目对应的数据:

因此在 d=1 时值=3.3;值=2,1,d=1;值=3.5,d=14;等等。

[3.3 2.1 3.5 2.5 4.6 7.4 2.6 7.8 9.2 10.11 14.3 2.5 6.7 3.4 7.5 8.5 9.7 4.3 2.8 4.1]

例如,在距离 d=6 处,我应该计算 2.5、7.8、9.2 和 4.3 的标准误差,这将是这些值的标准偏差除以值总数的平方根(在这种情况下为 4 )。

我使用了以下有效的代码,但我不知道如何将结果除以每个距离处的值总数的平方根:

import numpy as np

result = []
for d in set(key): 
    result.append(np.std[dist[i] for i in range(len(key)) if key[i] == d])

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您可以使用distances_list.count(distance) 来获取您正在使用的任何距离的出现次数。
  • 同样在你的代码中,什么是关键?
  • 对不起,key是有距离的数组。我应该指定的。
  • 等待dist是不是距离?我假设 key 包含这些值。我错了吗?

标签: python numpy statistics standard-error


【解决方案1】:

这有帮助吗?

for d in set(key): 
    result.append(np.std[dist[i] for i in range(len(key)) if key[i] == d] / np.sqrt(dist.count(d)))

【讨论】:

    【解决方案2】:

    我有点难以准确说出您想要的结构,但我建议您使用字典,以便您知道哪个结果与哪个键值相关联。如果你的数据是这样的:

    >>> key
    array([ 1,  1, 14,  6,  1, 12, 14,  6,  6,  7,  4,  3,  7,  9,  1,  3,  3,
            6,  5,  8])
    >>> values
    array([ 3.3 ,  2.1 ,  3.5 ,  2.5 ,  4.6 ,  7.4 ,  2.6 ,  7.8 ,  9.2 ,
           10.11, 14.3 ,  2.5 ,  6.7 ,  3.4 ,  7.5 ,  8.5 ,  9.7 ,  4.3 ,
            2.8 ,  4.1 ])
    

    您可以按照以下方式使用字典理解来设置字典:

    result = {f'distance_{i}':np.std(values[key==i]) / np.sqrt(sum(key==i)) for i in set(key)}
    >>> result
    {'distance_1': 1.0045988005169029, 'distance_3': 1.818424226264781, 'distance_4': 0.0, 'distance_5': 0.0, 'distance_6': 1.3372079120316331, 'distance_7': 1.2056170619230633, 'distance_8': 0.0, 'distance_9': 0.0, 'distance_12': 0.0, 'distance_14': 0.3181980515339463}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-02
      • 2021-12-03
      • 1970-01-01
      • 2017-09-21
      • 2021-05-12
      • 1970-01-01
      • 2017-05-10
      • 2012-07-19
      相关资源
      最近更新 更多