详解Numpy reshape(),np.reshape函数(改变数组形状)函数的作用与使用方法(图文详解1)
Numpy中的 reshape()
函数用于改变数组的形状。它的作用和使用方法如下:
- 作用:
- 将数组的维度和元素个数保持不变的情况下,重新定义数组的形状(行列数等)。
- 用于将一维数组转换为二维或多维数组,或将多维数组转换为一维数组。
- 底层原理:
- Numpy的数组是以列优先(C风格)的顺序存储数据的。
reshape()
函数会按照列优先的顺序,将原数组中的元素重新排列到新的形状中。- 新形状的总元素数必须与原数组的总元素数相同,否则无法完成reshape操作。
- 使用方法:
numpy.reshape(arr, newshape, order='C')
arr
: 需要改变形状的输入数组newshape
: 新的形状,可以是整数或者整数元组order
: 可选参数,默认为’C’,表示按行优先;’F’表示按列优先
- 如果新形状中有一个维度为-1,则Numpy会自动计算该维度的大小,使得新数组的总元素数等于原数组。
- 开发流程:
- 导入Numpy库
- 创建一个Numpy数组
- 使用
reshape()
函数改变数组的形状 - 打印结果查看
- 示例代码:
import numpy as np
# 创建一个1维数组
arr1d = np.array([1, 2, 3, 4, 5, 6])
print("1D array:", arr1d)
# 将1维数组转换为2维数组
arr2d = arr1d.reshape(2, 3)
print("2D array:", arr2d)
# 将2维数组转换为1维数组
arr1d_again = arr2d.reshape(-1)
print("1D array again:", arr1d_again)
# 指定order参数,按列优先
arr2d_col = arr1d.reshape(3, 2, order='F')
print("2D array (column-major):", arr2d_col)
输出结果:
1D array: [1 2 3 4 5 6]
2D array: [[1 2 3]
[4 5 6]]
1D array again: [1 2 3 4 5 6]
2D array (column-major): [[1 4]
[2 5]
[3 6]]
通过这个示例可以看到,reshape()
函数可以灵活地调整数组的形状,保持元素个数不变的情况下改变行列数。同时,通过指定order
参数,可以控制数组的存储顺序,以适应不同的需求。