Numpy
NumPy主要用途包括:
- 数学运算:提供了丰富的数学函数和操作符,例如对数组进行加减乘除、三角函数、指数函数等。
- 线性代数:支持矩阵乘法、求逆、特征值分解等线性代数运算。
- 随机数生成:能够生成各种概率分布的随机数。
Scipy
Scipy的主要应用场景包括:
- 优化和拟合:提供了多种优化算法和曲线拟合工具。
- 信号处理:包括滤波、傅立叶变换、卷积等信号处理方法。
- 积分和微分方程:提供了各种积分方法和微分方程求解器。
Pandas
Pandas常见用途有:
- 数据清洗:加载、清洗和转换数据,处理缺失值和异常值。
- 数据分析:基于Series和DataFrame进行统计分析、聚合和数据切片。
- 时间序列处理:支持日期范围生成、频率转换、移动窗口统计等时间序列操作。
Matplotlib
Matplotlib广泛用于:
- 折线图:展示趋势和变化。
- 散点图:显示数据点之间的关系和分布。
- 直方图:展示数据分布和频数。
- 饼图:用于表示数据在整体中的占比情况。
举例
Numpy(图像手绘效果)
from PIL import Image import numpy as np vec_az = np.pi/4. vec_el = np.pi/2.2 depth = 50 im = Image.open("E:\Python\实例\WECHAT头像.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')
运行前后结果