- 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 reshape() 函数
NumPy 的reshape()函数用于更改数组的形状而不改变其数据。它返回一个具有指定维度的新视图或数组,前提是元素总数保持不变。
此函数有两个主要参数:一个是要重塑的数组,另一个是指定新形状的元组。如果新形状与元素总数不兼容,则会引发“ValueError”。
NumPy 的reshape()函数对于将数据转换为适合不同处理要求的格式非常有用,例如在行主序和列主序格式之间转换,或为机器学习模型准备数据。
语法
NumPy reshape()函数的语法如下:
numpy.reshape(arr, newshape, order='C')
参数
以下是 NumPy reshape() 函数的参数:
- arr: 要重塑的输入数组。
- newshape: 此参数可以是整数或整数元组。新形状应与原始形状兼容。
- order: 此参数定义读写顺序。如果为 'C' 则为行主序,'F' 则为列主序。
返回值
reshape() 函数返回一个具有相同数据但不同形状的新数组。
示例 1
以下是 NumPy reshape() 函数的基本示例。在这个例子中,我们将一个包含 8 个元素的一维数组重塑为一个 2x4 的二维数组:
import numpy as np # Create a 1D array with 8 elements a = np.arange(8) print('The original array:') print(a) print('\n') # Reshape the array to a 2D array with shape (4, 2) b = a.reshape(4, 2) print('The modified array:') print(b)
输出
The original array: [0 1 2 3 4 5 6 7] The modified array: [[0 1] [2 3] [4 5] [6 7]]
示例 2
此示例使用 -1 自动计算将 2x3 数组重塑为 3x2 数组的适当维度:
import numpy as np # Original array a = np.array([[1, 2, 3], [4, 5, 6]]) # Reshaping the array to 3x2 using -1 to infer one of the dimensions reshaped_array = np.reshape(a, (3, -1)) print("Original array:") print(a) print("Reshaped array (3x2):") print(reshaped_array)
输出
Original array: [[1 2 3] [4 5 6]] Reshaped array (3x2): [[1 2] [3 4] [5 6]]
示例 3
众所周知,我们可以根据需要分配 order 参数,因此,在下面的示例中,我们通过将 order 定义为 'F'(即 Fortran 式列主序)来将 2x3 数组重塑为 3x2 数组:
import numpy as np # Original array a = np.array([[1, 2, 3], [4, 5, 6]]) # Reshaping the array to 3x2 in Fortran-like order reshaped_array = np.reshape(a, (3, 2), order='F') print("Original array:") print(a) print("Reshaped array (3x2) in Fortran-like order:") print(reshaped_array)
输出
Original array: [[1 2 3] [4 5 6]] Reshaped array (3x2) in Fortran-like order: [[1 5] [4 3] [2 6]]
numpy_array_manipulation.htm
广告