认识notebook
? range
%pwd
实例
def average(scores: list):
"""均值"""
return sum(scores) / len(scores)
def variance(scores: list):
"""总体方差"""
mean_value = average(scores)
return sum([(score - mean_value) ** 2 for score in scores]) / len(scores)
import random
names = ('妲己', '狄仁杰', '达摩', '孙尚香', '吕布')
courses = ('语文', '数学', '英语')
scores = [[random.randrange(60, 101) for _ in range(3)] for _ in range(5)]
for i, name in enumerate(names):
print(f'{name}平均分: {average(scores[i]):.1f}')
for i, course in enumerate(courses):
temp_scores = [scores[j][i] for j in range(5)]
print(f'{course}的最高分: {max(temp_scores)}')
print(f'{course}的最低分: {min(temp_scores)}')
print(f'{course}成绩的方差: {variance(temp_scores):.2f}')
初识三大神器
安装
!pip install numpy pandas matplotlib
导入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
scores = [[75, 97, 75], [78, 88, 94], [86, 100, 74], [77, 100, 66], [86, 83, 71]]
scores = np.array(scores)
scores
np.round(scores.mean(axis=1), 1)
scores.max(axis=0)
scores.min(axis=0)
scores.var(axis=0)
names = ('妲己', '狄仁杰', '达摩', '孙尚香', '吕布')
courses = ('语文', '数学', '英语')
df = pd.DataFrame(data=scores, columns=courses, index=names)
df['平均分'] = np.round(df.mean(axis=1), 1)
df.plot(kind='bar', y=['语文', '数学', '英语'])
plt.xticks(rotation=0)
plt.show()
df.loc['方差'] = df.var(axis=0)
df
df.to_excel('成绩表.xlsx')