1122 字
6 分钟
页面浏览--访问次数--
数据分析|本章小结及补充

12.1 NumPy 介绍#

NumPy 是 Python 中科学计算的基础包。它是一个 Python 库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。

NumPy 的核心功能:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、随机数生成以及傅里叶变换功能。
  • 用于集成由 C、C++、Fortran 等语言编写的代码的 API。

12.2 ndarray#

12.2.1 NumPy 数组(ndarray)的核心特性#

  1. 多维性:支持 0 维(标量)、1 维(向量)、2 维(矩阵)及更高维数组。
  2. 同质性:所有元素类型必须一致(通过 dtype 指定)。
  3. 高效性:基于连续内存块存储,支持向量化运算。

12.2.2 ndarray 常用属性#

属性名称通俗解释使用示例
shape数组的形状:行数和列数(或更高维度的尺寸)arr.shape
ndim维度数量:数组是几维的(1 维、2 维、3 维等)arr.ndim
size总元素个数:数组中所有元素的总数arr.size
dtype元素类型:数组中元素的类型(整数、浮点数等)arr.dtype
T转置:行变列,列变行arr.T
itemsize单个元素占用的内存字节数arr.itemsize
nbytes数组总内存占用量:size * itemsizearr.nbytes
flags内存存储方式:是否连续存储(高级优化)arr.flags

12.3 ndarray 的创建#

12.3.1 六大创建分类说明#

  1. 基础构造:适用于手动构建小规模数组或复制已有数据。
  2. 预定义形状填充:用于快速初始化固定形状的数组(如全 0 占位、全 1 初始化)。
  3. 基于数值范围生成:生成数值序列,常用于模拟时间序列、坐标网格等。
  4. 特殊矩阵生成:数学运算专用(如线性代数中的单位矩阵)。
  5. 随机数组生成:模拟实验数据、初始化神经网络权重等场景。
  6. 高级构造方法:处理非结构化数据(如文件、字符串)或通过函数生成复杂数组。

12.3.2 创建方法对照表#

用途方法
基础构造np.array()、np.copy()
预定义形状填充np.zeros()、np.ones()、np.empty()、np.full()
基于数值范围生成np.arange()、np.linspace()、np.logspace()
特殊矩阵生成np.eye()、np.diag()
随机数组生成np.random.rand()、np.random.randn()、np.random.randint()
高级构造方法np.array()、np.loadtxt()、np.fromfunction()

12.4 ndarray 的数据类型#

数据类型说明
bool布尔类型
int8、uint8
int16、uint16
int32、uint32
int64、uint64
有符号、无符号的 8 位(1 字节)整型
有符号、无符号的 16 位(2 字节)整型
有符号、无符号的 32 位(4 字节)整型
有符号、无符号的 64 位(8 字节)整型
float16
float32
float64
半精度浮点型
单精度浮点型
双精度浮点型
complex64
complex128
用两个 32 位浮点数表示的复数
用两个 64 位浮点数表示的复数

12.5 NumPy 常用函数总览#

分类函数
基本数学np.sqrt(x)、np.exp(x)、np.log(x)、np.sin(x)、np.abs(x)、np.power(a, b)、np.round(x, n)
统计函数np.sum(x)、np.mean(x)、np.median(x)、np.std(x)、np.var(x)、np.min(x) / np.max(x)、np.percentile(x, q)
比较函数np.greater(a, b)、np.less(a, b)、np.equal(a, b)、np.logical_and(a, b)、np.where(condition, x, y)
去重函数np.unique(x)、np.in1d(a, b)
排序函数np.sort(x)、x.sort()、np.argsort(x)、np.lexsort(keys)
数组操作np.concatenate((a, b))、np.split(x, indices)、np.reshape(x, shape)、np.copy(x)、np.isnan(x)

12.6 函数补充#

下表列出了前文未详细展开、但在实际数据分析中常用的补充函数:

函数功能示例
np.concatenate((a, b))将多个数组沿指定轴拼接np.concatenate(([1, 2], [3, 4])) → [1 2 3 4]
np.count_nonzero(x)统计非零元素(或满足条件)的个数np.count_nonzero(temps > 30) 统计超过30的天数
axis 参数指定聚合方向:axis=0 按列、axis=1 按行np.sum(arr, axis=1) 计算每行之和

12.7 本节小结#

本节完成了以下内容:

  • 回顾了 NumPy 的核心定位与功能:ndarray 多维数组、向量化运算、磁盘读写、线性代数与随机数等。
  • 梳理了 ndarray 的三大特性(多维性、同质性、高效性)与八项常用属性。
  • 归纳了 ndarray 的六大创建分类及对应方法。
  • 整理了 ndarray 支持的全部数据类型(布尔、整数、浮点数、复数)。
  • 汇总了 NumPy 常用函数速查表,覆盖基本数学、统计、比较、去重、排序和数组操作六大类。
  • 补充了 np.concatenate、np.count_nonzero、axis 参数等实用函数。

下一节我们将学习 Pandas 库。


数据分析

连载中

第 12 篇,共 21 篇本文属于系列

数据分析|本章小结及补充
https://luq-blog.xyz/posts/2026-07-02-data-notes-12-numpy-summary/
作者
Luquiescene
发布于
2026-07-02
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...

最后更新于 ,距今已过 91 天

部分内容可能已过时