numpy、scipy、pandas、matplotlib的读书报告

关于numpy、scipy、pandas、matplotlib的读书报告

一、引言
在数据科学和科学计算领域,numpy、scipy、pandas 和 matplotlib 是极为重要的 Python 库。它们各自具有独特的功能,能够帮助我们高效地处理数据、进行科学计算以及可视化数据。

二、基本函数用法
(一)numpy
numpy 是 Python 中用于科学计算的基础库,提供了高性能的多维数组对象  ndarray  以及一系列用于数组操作的函数。
数组创建:可以使用  numpy.array()  函数创建数组,例如  import numpy as np; a = np.array([1, 2, 3])  创建一个一维数组; b = np.array([[1, 2], [3, 4]])  创建一个二维数组。
数组运算:支持各种算术运算,如数组相加  c = a + b ,数组乘法  d = a * b (对应元素相乘)。还提供了统计函数,如  np.mean(a)  计算数组的均值, np.std(a)  计算标准差。

(二)scipy
scipy 建立在 numpy 之上,提供了更多的科学和工程计算功能。
数值积分:使用  scipy.integrate.quad()  函数可以进行数值积分,例如计算函数  f(x)=x**2  在区间  [0, 1]  上的积分:
python
from scipy.integrate import quad
import numpy as np
def f(x):
return x ** 2
result, error = quad(f, 0, 1)
print(result)
优化算法: scipy.optimize.minimize()  函数可用于求解无约束或有约束的优化问题。

(三)pandas
pandas 主要用于数据处理和分析,提供了  Series  和  DataFrame  两种数据结构。
数据读取与写入:可以使用  pandas.read_csv()  读取 CSV 文件,例如  import pandas as pd; data = pd.read_csv('data.csv') ;使用  data.to_csv('new_data.csv')  将数据写回 CSV 文件。
数据清洗与转换:可以通过  data.dropna()  删除包含缺失值的行, data.fillna(value)  用指定值填充缺失值;还可以使用  data.groupby()  函数进行分组操作。

(四)matplotlib
matplotlib 是一个用于数据可视化的库。
绘制折线图:使用  matplotlib.pyplot.plot()  函数,例如:
python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Sin Wave')
plt.show()
绘制柱状图: plt.bar()  函数用于绘制柱状图, x = [1, 2, 3]; y = [4, 5, 6]; plt.bar(x, y)  可以绘制简单的柱状图。

三、具体问题求解
(一)书本题目求解示例
假设书本上有一个统计问题,要求计算一组学生成绩的均值、中位数和标准差。给定学生成绩数据  scores = [85, 90, 78, 92, 88] ,使用上述库求解如下:
python
import numpy as np
scores = np.array([85, 90, 78, 92, 88])
mean_score = np.mean(scores)
median_score = np.median(scores)
std_score = np.std(scores)
print(f"均值: {mean_score}, 中位数: {median_score}, 标准差: {std_score}")
 
(二)数据处理问题
假设有一个包含销售数据的 CSV 文件,记录了不同产品在不同月份的销售额。我们可以使用 pandas 进行数据处理和分析。首先读取数据:
python
import pandas as pd
sales_data = pd.read_csv('sales.csv')
然后计算每个产品的总销售额:
python
total_sales = sales_data.groupby('product')['sales_amount'].sum()
print(total_sales)
 
四、图像处理
(一)使用 numpy 处理图像数据
图像本质上可以看作是一个多维数组,在 RGB 图像中是三维数组(高度、宽度、通道)。可以使用 numpy 对图像数组进行操作,例如裁剪图像:
python
import numpy as np
from PIL import Image

打开图像

image = Image.open('image.jpg')
image_array = np.array(image)

裁剪图像(假设裁剪左上角 100x100 的区域)

cropped_array = image_array[:100, :100, :]
cropped_image = Image.fromarray(cropped_array)
cropped_image.show()
 
(二)使用 matplotlib 显示图像
matplotlib 可以方便地显示图像,例如:
python
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
image = Image.open('image.jpg')
image_array = np.array(image)
plt.imshow(image_array)
plt.axis('off')
plt.show()
 
五、总结
通过学习 numpy、scipy、pandas 和 matplotlib,我们掌握了科学计算、数据处理和可视化的强大工具。这些库在实际应用中能够帮助我们高效地解决各种问题,无论是数据统计分析、科学计算中的数值方法应用,还是图像处理和数据可视化等方面,都具有不可替代的作用。在今后的学习和工作中,我们可以进一步深入探索这些库的高级功能,以满足更复杂的需求。

posted @ 2025-06-22 19:16  渔樵伴夜归客  阅读(22)  评论(0)    收藏  举报