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 # 创建一个包含 8 个元素的一维数组 a = np.arange(8) print('原始数组:') print(a) print(' ') # 将数组重塑为形状为 (4, 2) 的二维数组 b = a.reshape(4, 2) print('修改后的数组:') print(b)
输出
原始数组: [0 1 2 3 4 5 6 7] 修改后的数组: [[0 1] [2 3] [4 5] [6 7]]
示例 2
本示例使用 -1 自动计算将 2x3 数组重塑为 3x2 数组的适当维度 -
import numpy as np # 原始数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 使用 -1 推断其中一个维度,将数组重塑为 3x2 reshaped_array = np.reshape(a, (3, -1)) print("原始数组:") print(a) print("重塑后的数组 (3x2):") print(reshaped_array)
输出
原始数组: [[1 2 3] [4 5 6]] 重构数组 (3x2): [[1 2] [3 4] [5 6]]
示例 3
我们知道,我们可以根据需要分配 order 参数,因此在下面的示例中,我们将 order 定义为"F",即类似 Fortran 的列主序,将 2x3 数组重构为 3x2 数组 -
import numpy as np # 原始数组 a = np.array([[1, 2, 3], [4, 5, 6]]) # 将数组重塑为类似 Fortran 顺序的 3x2 数组 reshaped_array = np.reshape(a, (3, 2), order='F') print("原始数组:") print(a) print("重塑后的数组 (3x2) 以类似 Fortran 顺序排列:") print(reshaped_array)
输出
原始数组: [[1 2 3] [4 5 6]] 重塑后的数组 (3x2) 以类似 Fortran 顺序排列: [[1 5] [4 3] [2 6]]