标准差计算器
计算均值、方差、标准差、中位数和众数。支持总体和样本公式。
常见问题
代码实现
import statistics
def full_stats(data, population=True):
"""Calculate comprehensive statistics for a dataset."""
n = len(data)
total = sum(data)
mean = total / n
if population:
variance = sum((x - mean) ** 2 for x in data) / n
else:
variance = sum((x - mean) ** 2 for x in data) / (n - 1)
std_dev = variance ** 0.5
sorted_data = sorted(data)
mid = n // 2
median = (sorted_data[mid - 1] + sorted_data[mid]) / 2 if n % 2 == 0 else sorted_data[mid]
# Mode
from collections import Counter
freq = Counter(data)
max_freq = max(freq.values())
mode = [k for k, v in freq.items() if v == max_freq] if max_freq > 1 else []
cv = (std_dev / abs(mean)) * 100 if mean != 0 else 0
return {
"count": n, "sum": total, "mean": mean,
"variance": variance, "std_dev": std_dev,
"min": sorted_data[0], "max": sorted_data[-1],
"range": sorted_data[-1] - sorted_data[0],
"median": median, "mode": mode,
"cv_pct": cv,
}
data = [4, 8, 15, 16, 23, 42]
result = full_stats(data, population=True)
for k, v in result.items():
print(f"{k:12}: {v}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.