从 N-1 个样本计算最低 Ave 和 STDEV
Calculate Lowest Ave and STDEV from N-1 Sample
我需要帮助编写 python 中的函数来计算 N-1 个样本的平均值和标准偏差。
我有 96 行四重样本:96x4 numpy 数组中总共有 384 个样本。
对于每一行,我想:
将一个样本一式四份取出,变成一式三份
[30,38,23,21] becomes [38,23,21]
计算这些一式三份样本的均值和标准差
mean = 27.33, stdev = 9.29
放回那个样本,使它们再次一式四份
[38,23,21] becomes [30,38,23,21]
重复步骤1-3三次,每次取出另一个样本
[30,23,21]: mean = 24.67, stdev = 4.73
[30,38,21]: mean = 29.67, stdev = 8.50
[30,38,23]: mean = 30.33, stdev = 7.51
在这些计算数据中找出标准偏差最低的平均值
[30,23,21]: mean = 24.67, stdev = 4.73
移至下一行并重复步骤 1-4
输出是一个 96x1 数组,每个对应行的平均值
基本上我想在一式四份的假设下计算平均值和标准差。
我尝试编写一个带有嵌套 for 循环的函数,但它变得又长又难看。我需要更聪明的建议。
我得出以下结论:
import numpy as np
def bestMean(rows):
bestMeans = []
for row in rows:
mean = [np.mean(row[:k] + row[k+1:]) for k in xrange(len(row))]
std = [np.std(row[:k] + row[k+1:]) for k in xrange(len(row))]
bestMeans.append((mean[np.argmin(std)], np.min(std)))
return bestMeans
我做了一个快速测试,它似乎有效。不过请注意,这不是目前最快的选择,但可读性很强。
我需要帮助编写 python 中的函数来计算 N-1 个样本的平均值和标准偏差。
我有 96 行四重样本:96x4 numpy 数组中总共有 384 个样本。
对于每一行,我想:
将一个样本一式四份取出,变成一式三份
[30,38,23,21] becomes [38,23,21]
计算这些一式三份样本的均值和标准差
mean = 27.33, stdev = 9.29
放回那个样本,使它们再次一式四份
[38,23,21] becomes [30,38,23,21]
重复步骤1-3三次,每次取出另一个样本
[30,23,21]: mean = 24.67, stdev = 4.73 [30,38,21]: mean = 29.67, stdev = 8.50 [30,38,23]: mean = 30.33, stdev = 7.51
在这些计算数据中找出标准偏差最低的平均值
[30,23,21]: mean = 24.67, stdev = 4.73
移至下一行并重复步骤 1-4
输出是一个 96x1 数组,每个对应行的平均值
基本上我想在一式四份的假设下计算平均值和标准差。
我尝试编写一个带有嵌套 for 循环的函数,但它变得又长又难看。我需要更聪明的建议。
我得出以下结论:
import numpy as np
def bestMean(rows):
bestMeans = []
for row in rows:
mean = [np.mean(row[:k] + row[k+1:]) for k in xrange(len(row))]
std = [np.std(row[:k] + row[k+1:]) for k in xrange(len(row))]
bestMeans.append((mean[np.argmin(std)], np.min(std)))
return bestMeans
我做了一个快速测试,它似乎有效。不过请注意,这不是目前最快的选择,但可读性很强。