- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 创建和操作数组
- NumPy - 数组创建函数
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组拼接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引与切片
- NumPy - 高级索引
- NumPy 数组属性和运算
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组运算
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 复制与视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 缺失数据插补
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行向量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 从数值范围创建数组
NumPy 中从数值范围创建数组
在 NumPy 中从数值范围创建数组是指生成包含指定范围内的数字序列的数组。NumPy 提供了几个函数来创建这样的数组,如下所示:
- 使用 numpy.arange() 函数
- 使用 numpy.linspace() 函数
- 使用 numpy.logspace() 函数
- 使用 numpy.meshgrid() 函数
使用 numpy.arange() 函数
numpy.arange() 函数通过根据指定的起始值、终止值和步长值生成数字序列来创建数组。它类似于 Python 的内置 range() 函数,但返回的是 NumPy 数组。以下是语法:
numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)
其中:
start (可选) - 区间的起始值。默认为 0。
stop - 区间的结束值(不包含)。
step (可选) - 值之间的间隔。默认为 1。
dtype (可选) - 数组所需的数据类型。如果没有给出,NumPy 将根据输入值解释数据类型。
示例:基本用法
在下面的示例中,我们使用 numpy.arange() 函数生成从 0 到 10(不包含 10)的数组:
import numpy as np # Create an array from 0 to 9 arr = np.arange(10) print("Array using arange():", arr)
获得以下输出:
Array using arange(): [0 1 2 3 4 5 6 7 8 9]
示例:指定起始值、终止值和步长
在这里,我们使用 numpy.arange() 函数生成从 1 到 10(不包含 10),步长为 2 的数组:
import numpy as np # Create an array from 1 to 9 with a step of 2 arr = np.arange(1, 10, 2) print("Array with start, stop, and step:", arr)
这将产生以下结果:
Array with start, stop, and step: [1 3 5 7 9]
使用 numpy.linspace() 函数
numpy.linspace() 函数在一个指定区间内生成具有均匀间隔值的数组。当您需要两个值之间特定数量的点时,此函数很有用。
此函数类似于 arange() 函数。在这个函数中,指定区间内均匀间隔值的个数,而不是步长。以下是语法:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
其中:
start - 区间的起始值。
stop - 区间的结束值。
num (可选) - 要生成的均匀间隔样本数。默认为 50。
endpoint (可选) - 如果为 True,则 stop 是最后一个样本。如果为 False,则不包含。默认为 True。
retstep (可选) - 如果为 True,则返回 (samples, step),其中 step 是样本之间的间距。默认为 False。
dtype (可选) - 数组所需的数据类型。如果没有给出,NumPy 将根据输入值解释数据类型。
axis (可选) - 结果中存储样本的轴。默认为 0。
示例:基本用法
在这个示例中,我们使用 numpy.linspace() 函数生成一个从 0 到 1(默认情况下包含 1)的 10 个均匀间隔值的数组:
import numpy as np # Create an array of 10 evenly spaced values from 0 to 1 arr = np.linspace(0, 1, 10) print("Array using linspace():", arr)
以上代码的输出如下:
Array using linspace(): [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ]
示例:排除端点
在这里,我们使用 numpy.linspace() 函数生成一个从 0 到略小于 1 的 10 个均匀间隔值的数组,不包括端点:
import numpy as np # Create an array arr = np.linspace(0, 1, 10, endpoint=False) print("Array with endpoint=False:", arr)
获得的输出如下所示:
Array with endpoint=False: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
示例:返回步长
现在,我们生成一个从 0 到 1(默认情况下包含 1)的 10 个均匀间隔值的数组,并返回步长:
import numpy as np # Create an array arr, step = np.linspace(0, 1, 10, retstep=True) print("Array with step size:", arr) print("Step size:", step)
执行以上代码后,我们得到以下输出:
Array with step size: [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ] Step size: 0.1111111111111111
使用 numpy.logspace() 函数
numpy.logspace() 函数生成一个数组,其值在对数尺度上均匀分布。这对于生成跨越几个数量级的数值非常有用。以下是语法:
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
其中:
start - 序列的起始值(作为底数的幂)。
stop - 序列的结束值(作为底数的幂)。
num (可选) - 要生成的样本数。默认为 50。
endpoint (可选) - 如果为 True,则 stop 是最后一个样本。如果为 False,则不包含。默认为 True。
base (可选) - 对数空间的底数。默认为 10.0。
dtype (可选) - 数组所需的数据类型。如果没有给出,NumPy 将根据输入值解释数据类型。
axis (可选) - 结果中存储样本的轴。默认为 0。
示例
在下面的示例中,我们使用 numpy.logspace() 函数生成一个在对数尺度上从 21 到 210 均匀分布的 10 个值的数组,底数为 2:
import numpy as np # Create an array arr = np.logspace(1, 10, 10, base=2) print("Array with base 2:", arr)
我们得到以下输出:
Array with base 2: [ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
使用 numpy.meshgrid() 函数
numpy.meshgrid() 函数根据坐标向量生成坐标矩阵。这对于创建用于在 2D 或 3D 空间中评估函数的点网格非常有用。以下是语法:
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
其中:
*xi - 表示网格坐标的 1D 数组。
copy (可选) - 如果为 True,则创建输入数组的副本。默认为 True。
sparse (可选) - 如果为 True,则返回稀疏网格以节省内存。默认为 False。
indexing (可选) - 指定笛卡尔 ('xy',默认)或矩阵 ('ij') 索引约定。
示例:创建 2D 网格
在下面的示例中,我们使用 numpy.meshgrid() 函数根据 1D 数组 "x" 和 "y" 生成坐标矩阵 "X" 和 "Y",其中 X 表示 2D 网格的 x 坐标,Y 表示 y 坐标:
import numpy as np # Create 1D arrays for x and y coordinates x = np.arange(1, 4) y = np.arange(1, 3) # Generate coordinate matrices X, Y = np.meshgrid(x, y) print("X grid:") print(X) print("Y grid:") print(Y)
获得以下输出:
X grid: [[1 2 3] [1 2 3]] Y grid: [[1 1 1] [2 2 2]]
示例:创建 3D 网格
现在,我们使用矩阵索引 ('ij') 为 3D 网格从 1D 数组 x、y 和 z 生成坐标矩阵 X、Y 和 Z:
import numpy as np # Create 1D arrays for x, y, and z coordinates x = np.arange(1, 4) y = np.arange(1, 3) z = np.arange(1, 3) # Generate coordinate matrices X, Y, Z = np.meshgrid(x, y, z, indexing='ij') print("X grid:") print(X) print("Y grid:") print(Y) print("Z grid:") print(Z)
执行以上代码后,我们得到以下输出:
X grid: [[[1 1] [1 1]] [[2 2] [2 2]] [[3 3] [3 3]]] Y grid: [[[1 1] [2 2]] [[1 1] [2 2]] [[1 1] [2 2]]] Z grid: [[[1 2] [1 2]] [[1 2] [1 2]] [[1 2] [1 2]]]