numpy.arange 函数使用详解(零基础易懂)
一、arange 函数核心作用
numpy.arange() 是 NumPy 中用来生成等差数组的函数。
简单说:就是帮你快速生成「规律递增的数字序列」,和 Python 原生的 range() 非常像,但更强大——支持小数步长、直接生成数组。
二、标准语法
numpy.arange(start, stop, step, dtype=None)
参数详解
- start(可选) :序列起始值,默认 = 0
- stop(必选) :序列结束值,不包含该值(左闭右开)
- step(可选) :步长/间隔,默认 = 1
- dtype(可选) :指定数组数据类型,默认自动推导
重点规则:包含 start,不包含 stop
三、四种基础用法(全覆盖)
1. 只传 stop(最常用)
从 0 开始,步长为 1,到 stop 前结束
import numpy as np
arr = np.arange(5)
print(arr)
# 输出:[0 1 2 3 4]
2. 指定 start + stop
从 start 开始,步长 1,不包含 stop
arr = np.arange(2, 8)
print(arr)
# 输出:[2 3 4 5 6 7]
3. 指定 start + stop + step(自定义间隔)
# 从1开始,到10结束(不包含10),步长2
arr = np.arange(1, 10, 2)
print(arr)
# 输出:[1 3 5 7 9]
4. 小数步长(碾压原生 range)
Python 自带的 range 不支持小数步长,arange 支持,非常适合绘图、采样、区间划分
arr = np.arange(0, 1, 0.2)
print(arr)
# 输出:[0. 0.2 0.4 0.6 0.8]
四、指定数据类型 dtype
# 生成浮点型数组
arr = np.arange(0, 5, dtype=np.float32)
print(arr)
# 输出:[0. 1. 2. 3. 4.]
五、常见实战场景
1. 生成索引序列
index = np.arange(10)
# [0 1 2 3 4 5 6 7 8 9]
2. 生成坐标轴数据(matplotlib 绘图常用)
x = np.arange(-np.pi, np.pi, 0.01)
# 生成连续密集区间,用于画 sin、cos 曲线
六、高频易错点(必看)
易错1:取不到 stop 值
np.arange(0, 5) 最大是 4,永远不包含右端点
易错2:小数步长精度问题
由于浮点数精度误差,偶尔会出现末尾多一个数/少一个数。 需要均匀等分区间优先用 np.linspace,arange 更适合「固定步长」。
易错3:步长不能为 0
step=0 会直接报错,无法生成序列。
七、arange 与 range 区别(面试/实战常问)
| 特性 | range() | np.arange() |
|---|---|---|
| 返回值 | 可迭代对象 | NumPy 数组 |
| 小数步长 | 不支持 | 支持 |
| 运算能力 | 只能遍历 | 支持向量批量运算 |
八、极简总结
- np.arange(stop) :0 到 stop-1,步长1
- np.arange(start, stop) :左闭右开区间,步长1
- np.arange(start, stop, step) :自定义步长,支持小数
- 适合:固定步长生成序列;均分区间优先用 linspace