读书笔记

1.Numpy课本cos函数
import numpy as np
import pylab as pl
a = np.arange(0, 2.0*np.pi, 0.1)
b = np.cos(a)
pl.scatter(a,b)
pl.title("cos")
pl.show()

2.scipy
from scipy import optimize, stats

求函数最小值

def f(x):
return x**2 + 10*np.sin(x)
result = optimize.minimize(f, x0=0) # 找到最小值点

统计分析

data = np.random.normal(0, 1, 1000)
mean, std = stats.norm.fit(data) # 拟合正态分布

3.panadas 课本P301 8.4
from direct.showbase.ShowBase import ShowBase
from panda3d.core import *
class MyApp(ShowBase):
def init(self):
ShowBase.init(self)
# 加载一个立方体模型
model = self.loader.loadModel("models/misc/box")
model.reparentTo(self.render)

app = MyApp()
app.run()

4.matplotlib 课本P301 8.5
import networkx as nx
import matplotlib.pyplot as plt

创建一个无向图

G = nx.Graph()

添加节点

G.add_nodes_from([1, 2, 3])

添加边

G.add_edges_from([(1, 2), (2, 3)])

绘制图形

nx.draw(G, with_labels=True)
plt.show()

5.综合

生成模拟数据

np.random.seed(42)
students = ['Student'+str(i) for i in range(1, 101)]
scores = np.random.normal(70, 15, 100).clip(0, 100)
grades = pd.DataFrame({'Student': students, 'Score': scores})

数据分析

print(f"平均分: {grades['Score'].mean():.1f}")
print(f"最高分: {grades['Score'].max()}")
print(f"最低分: {grades['Score'].min()}")

可视化

plt.hist(grades['Score'], bins=10, edgecolor='black')
plt.title('成绩分布直方图')
plt.xlabel('分数')
plt.ylabel('人数')
plt.show()

统计检验

from scipy.stats import ttest_ind
group_a = np.random.normal(70, 10, 50)
group_b = np.random.normal(75, 10, 50)
t_stat, p_val = ttest_ind(group_a, group_b)
print(f"P值: {p_val:.4f}")

6.学习总结
掌握了四大科学计算库的核心功能:
NumPy:高效数组运算
SciPy:科学计算算法
Pandas:数据处理与分析
Matplotlib:数据可视化
通过实际问题的解决,加深了对这些库应用场景的理解
图像处理方面,学习了基本的图像加载、处理和显示方法
未来可以进一步学习:更高级的机器学习库(scikit-learn);交互式可视化(Plotly);大数据处理(Dask)

posted @ 2025-06-21 18:39  Neflibata。  阅读(31)  评论(0)    收藏  举报