- 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 提供了 `size` 属性来检查数组中的元素数量。此属性返回一个整数,表示元素的总数,而不管其形状如何。无论数组是一维还是多维,`size` 始终提供所有现有元素的数量。
了解数组的大小在各种情况下都很有用,例如迭代元素、重塑数组和优化内存使用。
示例:迭代元素
当您需要迭代数组中的每个元素时,了解大小可以帮助您定义循环的范围。
import numpy as np # Creating a 1D array array = np.array([1, 2, 3, 4, 5]) # Iterating using the size attribute for i in range(array.size): print(array[i])
以下是获得的输出:
1 2 3 4 5
示例:内存计算
您可以通过使用 NumPy 中的 "itemsize" 属性将数组的大小乘以每个元素的大小来计算数组的内存消耗。
import numpy as np array = np.ones((1000, 1000), dtype=np.float64) memory_usage = array.size * array.itemsize print("Memory usage in bytes:", memory_usage)
这将产生以下结果:
Memory usage in bytes: 8000000
NumPy 数组大小与数组形状
虽然 `size` 属性给出数组中元素的总数,但 `shape` 属性提供数组的维度。数组的大小可以通过将所有维度相乘来从形状计算出来。
示例
在此示例中,我们分别使用 NumPy 的 "shape" 和 "size" 属性来检索数组的形状和大小。
import numpy as np # Creating a 3D array array = np.zeros((2, 3, 4)) # Checking the shape and size print("Array shape:", array.shape) print("Array size:", array.size)
数组的形状是 (2, 3, 4),大小是 2 * 3 * 4 = 24。
Array shape: (2, 3, 4) Array size: 24
调整数组大小
NumPy 中的 `resize()` 函数用于调整数组大小。此函数就地更改数组的形状和大小,并且新形状必须与元素总数兼容。
如果新形状大于原始形状,则新数组将填充原始数组的重复副本。如果新形状较小,则原始数组将被截断。
与仅更改数组形状而不更改其数据的 `reshape()` 函数不同,`resize()` 函数也可以更改数组的大小,添加新元素或删除现有元素。
示例:调整为较大数组
在此示例中,原始数组被调整为 "2x5" 数组。新元素通过重复原始数组来填充。
import numpy as np # Creating a 1D array array_1d = np.array([1, 2, 3]) # Resizing the array to a larger size resized_array = np.resize(array_1d, (2, 5)) print("Original array:\n", array_1d) print("Resized array:\n", resized_array)
执行上述代码后,我们将获得以下输出:
Original array: [1 2 3] Resized array: [[1 2 3 1 2] [3 1 2 3 1]]
示例:调整为较小数组
在这里,原始 "2x3" 数组被调整为 "2x2" 数组。多余的元素被截断。
import numpy as np # Creating a 2D array array_2d = np.array([[1, 2, 3], [4, 5, 6]]) # Resizing the array to a smaller size resized_array = np.resize(array_2d, (2, 2)) print("Original array:\n", array_2d) print("Resized array:\n", resized_array)
产生的结果如下:
Original array: [[1 2 3] [4 5 6]] Resized array: [[1 2] [3 4]]
示例:就地调整大小
在此示例中,原始数组就地调整为 "2x5" 数组。新元素填充为零。
import numpy as np # Creating a 1D array array_1d = np.array([1, 2, 3]) # In-place resizing the array to a larger size array_1d.resize((2, 5)) print("Resized array:\n", array_1d)
我们将获得如下所示的输出:
Resized array: [[1 2 3 0 0] [0 0 0 0 0]]
广告