来源:网络
Python 的 NumPy 技术库适用于数据分析、科学计算和机器学习等多个方向。
NumPy 简介
NumPy(Numerical Python)是 Python 中最重要的科学计算库之一,主要用于:
NumPy 核心功能概览
常用数据结构:ndarray
import numpy as npa = np.array([1, 2, 3]) # 一维数组b = np.array([[1, 2], [3, 4]]) # 二维数组
属性介绍:
b.shape # 数组维度 (2, 2)b.ndim # 数组维度数:2b.dtype # 元素类型:int64、float32 等b.size # 元素总数b.itemsize # 单个元素所占字节数
数组创建函数
np.zeros((3, 4)) # 全零数组np.ones((2, 2)) # 全1数组np.full((2, 3), 7) # 固定值np.eye(4) # 单位矩阵np.arange(0, 10, 2) # 类似 rangenp.linspace(0, 1, 5) # 等间距数列
数组运算(广播和向量化)
a = np.array([1, 2, 3])b = np.array([4, 5, 6])a + b # array([5, 7, 9])a * 2# array([2, 4, 6])np.exp(a) # 指数np.sqrt(b) # 开方
广播机制示例:
a = np.array([[1], [2], [3]])b = np.array([10, 20, 30])a + b
数组切片与索引
a = np.array([[1,2,3], [4,5,6]])a[0, 1] # 获取2a[:, 1] # 获取第2列:array([2, 5])a[1, :] # 获取第2行:array([4, 5, 6])
布尔索引:
a[a > 3] # 返回大于3的元素组成的数组
数组变换与组合
a.reshape(3, 2) # 改变形状a.T # 转置np.vstack([a, a]) # 垂直堆叠np.hstack([a, a]) # 水平堆叠np.split(a, 2) # 拆分
数学和统计函数
np.sum(a) # 所有元素求和np.mean(a) # 平均值np.std(a) # 标准差np.min(a), np.max(a) # 最小值与最大值np.argmin(a), np.argmax(a)# 最小值/最大值索引
线性代数模块 numpy.linalg
from numpy.linalg import inv, eig, solveA = np.array([[1, 2], [3, 4]])inv(A) # 矩阵求逆eig(A) # 特征值与特征向量b = np.array([5, 6])solve(A, b) # 求 Ax = b 的解
随机数模块 numpy.random
np.random.rand(3, 2) # 0~1之间的随机数np.random.randn(3) # 标准正态分布np.random.randint(1, 10, 5) # 整数随机数np.random.choice([1, 2, 3], 4) # 从列表中随机选取np.random.seed(42) # 设置随机种子
输入输出
np.save('my_array.npy', a) # 保存为二进制np.load('my_array.npy') # 加载二进制np.savetxt('my_array.csv', a, delimiter=',') # 保存为CSVnp.loadtxt('my_array.csv', delimiter=',') # 读取CSV
总结思维导图(逻辑结构)
NumPy├── ndarray│ ├── 属性 (shape, dtype, ndim, size)│ └── 创建 (array, zeros, ones, arange, linspace)├── 运算│ ├── 数值运算 (+, -, *, /, **, exp, sqrt)│ └── 广播机制├── 索引与切片│ ├── 普通索引│ ├── 布尔索引│ └── fancy indexing├── 数组变换│ ├── reshape│ ├── transpose│ ├── 合并与拆分├── 数学统计函数│ ├── sum, mean, std, min, max│ └── argmin, argmax├── 线性代数│ └── inv, eig, solve, dot├── 随机模块│ └── rand, randint, choice, seed└── IO操作 └── save, load, savetxt, loadtxt
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
▲扫描二维码-免费领取
推荐阅读
你写的Python代码还是Pythonic代码?
用 Python 处理 Excel 电子表格
写业务代码必备:9 个被低估的 Python 高效工具库
全程 Python:无需离开 Python 即可实现光速级 CUDA 加速,无需c++支持