Python读书报告
在数据科学和科学计算领域,python因为其丰富的库生态系统而成为首选语言,例如其中的numpy,scipy,pandas,matplotlib构成了python科学计算的核心工具。
接下来我将报告这四个库的基本用法和实际应用。
首先是numpy,它是python中科学计算的基础库,提供了高效的多维数组对象和丰富的数学函数。
可以用于解决实际的矩阵运算。
3x + y = 9
x + 2y = 8 计算线性方程组
这是它的功能:
A = np.array([[3, 1], [1, 2]])
b = np.array([9, 8])
x = np.linalg.solve(A, b)
print(x) # 输出 [2., 3.]
接下来就是关于scipy的基本用法与实际应用。
scipy建立在numpy的基础上,提供了更多的科学计算工具,包括积分,优化等等。
可对一组数据点进行二次多项式拟合。例如:
from scipy.optimize import curve_fit
定义二次函数模型
def quadratic(x, a, b, c):
return a * x**2 + b * x + c
生成带噪声的数据
x_data = np.linspace(-5, 5, 50)
y_data = 2.5 * x_data**2 + 3.2 * x_data + 1.7 + np.random.normal(0, 5, 50)
进行拟合
params, _ = curve_fit(quadratic, x_data, y_data)
print(params) # 输出接近 [2.5, 3.2, 1.7]
接下来是关于pandas的基本用法与实际应用。
它提供了高效的数据结构和数据分析工具,特别适合处理表格数据和时间序列。
可用于数据清洗与分析:
假设有销售数据
data = {
'Date': pd.date_range('20230101', periods=100),
'Product': np.random.choice(['A', 'B', 'C'], 100),
'Sales': np.random.randint(100, 1000, 100)
}
sales_df = pd.DataFrame(data)
按产品类别分组计算平均销售额
result = sales_df.groupby('Product')['Sales'].mean()
print(result)
最后是Matplotlib,它是Python最流行的绘图库,可以创建各种静态、动态和交互式可视化。
基本绘图功能:
import matplotlib.pyplot as plt
线图
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.show()
散点图
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y)
plt.show()
柱状图
data = [5, 10, 15, 20, 25]
labels = ['A', 'B', 'C', 'D', 'E']
plt.bar(labels, data)
plt.show()
实际的用法:数据可视化
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
temp = [5, 7, 11, 16, 20, 25, 28, 27, 23, 18, 12, 7]
rain = [45, 40, 50, 60, 70, 80, 85, 80, 65, 55, 50, 45]
fig, ax1 = plt.subplots(figsize=(10, 6))
温度曲线
color = 'tab:red'
ax1.set_xlabel('Month')
ax1.set_ylabel('Temperature (°C)', color=color)
ax1.plot(months, temp, color=color, marker='o')
ax1.tick_params(axis='y', labelcolor=color)
降水量柱状图
ax2 = ax1.twinx()
color = 'tab:blue'
ax2.set_ylabel('Rainfall (mm)', color=color)
ax2.bar(months, rain, color=color, alpha=0.3)
ax2.tick_params(axis='y', labelcolor=color)
plt.title('Monthly Temperature and Rainfall')
plt.show()
我的总结是:这四个库的结合运用,可以解决从基础数学运算到复杂数据分析的各种问题。掌握他们之后可以进一步学习更高级的功能和技巧,如Pandas的时间序列分析等,应对更大的挑战。