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

发布时间 2023-12-29 00:21:54作者: Antea

读书报告

在本次的学习中,我深入研究了NumPy、SciPy、Pandas和Matplotlib这几个Python库。这些库在数据处理、科学计算和可视化方面发挥着重要作用。

首先,我学习了这些库的基本函数用法。NumPy提供了强大的数组处理功能,如创建数组、进行数组运算以及利用数组进行数据分析。SciPy库则在科学计算领域发挥着重要作用,比如积分、求解微分方程等。使用Pandas库让能够更轻松地处理和分析数据,如读取数据、进行数据清洗和数据筛选等操作。最后,Matplotlib库提供了丰富的绘图功能,如制作折线图、散点图、直方图等,使得数据可视化变得更加直观和生动。

在学习过程中,我也尝试用这些库来解决一些具体的问题。例如,在书本上的一些题目中,我通过使用Python和这些库成功地求解了一些具体问题。这使我对这些库的理解更加深入,并且加强了我的实际应用能力。

Numpy:

  1. 创建数组:NumPy提供了np.array()函数来创建多维数组,也可以使用np.zeros()np.ones()np.arange()等函数来创建特定类型的数组。

  2. 数组操作:对数组进行索引、切片和迭代,改变数组形状,合并和分割数组等。

  3. 数学运算:NumPy包含了丰富的数学函数,如三角函数、指数函数、对数函数、四则运算、矩阵乘法等。

  4. 统计函数:计算数组的均值、方差、标准差,最大值、最小值等统计量。

  5. 线性代数:进行矩阵和向量的运算,求解线性方程组,计算行列式、特征值和特征向量等线性代数运算。

  6. 随机数生成:生成各种分布的随机数,如均匀分布、正态分布等。

  7. 广播功能:NumPy的广播功能能够对不同形状的数组进行运算,使得数组之间的运算更加灵活和便捷。

  8. 文件输入输出:NumPy可以读取和写入数组数据到磁盘,并支持多种格式,如文本文件、二进制文件等。

from PIL import Image
import numpy as np
vec_el = np.pi/2.2
vec_az = np.pi/4.
depth = 10.
im = Image.open('天安门.jpg').convert('L')
a = np.asarray(im).astype('float')
grad = np.gradient(a)
grad_x, grad_y = grad
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
dx = np.cos(vec_el)*np.cos(vec_az)
dy = np.cos(vec_el)*np.sin(vec_az)
dz = np.sin(vec_el)
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
a2 = 255*(dx*uni_x + dy*uni_y + dz*uni_z)
a2 = a2.clip(0,255)
im2 = Image.fromarray(a2.astype('uint8'))
im2.save('fcityHandDraw.jpg')

 

 

 

Matplotlib:

它提供了丰富的绘图功能,可以用于生成各种类型的图表,包括折线图、散点图、柱状图、饼图、直方图等。

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.plot([1,2,4], [1,2,3])
plt.title("坐标系标题")
plt.xlabel('时间(s)')
plt.ylabel('范围(m)')
plt.xticks([1,2,3,4,5],[r'$\pi/3$', r'$2\pi/3$', r'$\pi$', r'$4\pi/3$', r'$5\pi/3$'])
plt.show()

 

 

 

 

SciPy:

SciPy 是一个开源的 Python 科学计算库,建立在 NumPy 之上,提供了许多科学和工程计算中常用的功能。它包含了许多模块,用于解决各种问题,包括数值积分、优化、信号处理、线性代数、统计等。

from scipy import stats
import numpy as np

# 创建一个示例数据集
data = np.array([3, 5, 7, 2, 8, 10, 15])

# 计算均值
mean = np.mean(data)
print("Mean:", mean)

# 计算方差
variance = np.var(data)
print("Variance:", variance)

 

 

 

Pandas:

Pandas 是一个强大的数据分析工具,提供了数据结构和数据分析工具,特别适用于处理结构化数据。以下是 Pandas 中一些常见功能和用法:

  1. 创建数据:可以使用 Pandas 创建 Series 和 DataFrame 数据结构,用于存储一维或二维的数据。

  2. 读取和写入数据:Pandas 支持从各种数据源读取数据,如 CSV 文件、Excel 文件、数据库,也可以将数据写入到这些数据源中。
  3. 数据索引和选择:可以使用标签或位置进行数据的选择和索引。
  4. 数据清洗和处理:可以对数据进行缺失值处理、重复值处理、数据转换等操作。
  5. 数据分组和聚合:可以对数据进行分组并进行聚合操作,如求和、平均值、计数等。
  6. 数据可视化:Pandas 结合 Matplotlib 可以进行数据的可视化操作。
  7. 时间序列分析:Pandas 提供了丰富的时间序列分析功能,包括日期范围生成、频率转换、移动窗口统计等。

 

 

import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print (s)