详解Numpy reshape函数()(改变数组形状)函数的作用与使用方法(图文详解1)
详细解答Numpy中reshape()函数的作用和使用方法。
- 函数作用:
- reshape()函数用于改变数组的形状(shape)。它可以将一维数组转换为多维数组,也可以将多维数组转换为一维数组。
- 该函数不会改变数组元素的总数,只是改变元素在数组中的排列方式。
- 使用方法:
- 语法: numpy.reshape(arr, newshape, order=’C’)
- arr: 需要改变形状的原始数组
- newshape: 新的形状,可以是整数或者整数元组
- order: 可选参数,指定填充数组的方式,’C'(默认)按行优先,’F’按列优先,’A’任意顺序(行优先或列优先),’-1’自动推断新的形状
- 语法: numpy.reshape(arr, newshape, order=’C’)
- 底层原理:
- Numpy数组是以1维的内存块存储的,reshape()函数只是改变了元素在内存中的排列方式,并没有改变元素的总数。
- 比如一个1×6的数组,可以被reshape为2×3或3×2,不会改变总共6个元素。
- 使用步骤:
- 导入numpy库
- 创建需要改变形状的数组
- 使用reshape()函数改变数组形状
- 输出结果
- 示例代码:
import numpy as np
# 创建一维数组
arr1d = np.array([1, 2, 3, 4, 5, 6])
print("原数组形状:", arr1d.shape)
# 将一维数组reshape为二维数组
arr2d = arr1d.reshape(2, 3)
print("reshape后的数组形状:", arr2d.shape)
print(arr2d)
# 将二维数组reshape为一维数组
arr1d_2 = arr2d.reshape(-1)
print("reshape后的数组形状:", arr1d_2.shape)
print(arr1d_2)
# 使用-1参数自动推断新的形状
arr3d = np.arange(24).reshape(2, 3, 4)
print("reshape后的数组形状:", arr3d.shape)
print(arr3d)
输出结果:
原数组形状: (6,)
reshape后的数组形状: (2, 3)
[[1 2 3]
[4 5 6]]
reshape后的数组形状: (6,)
[1 2 3 4 5 6]
reshape后的数组形状: (2, 3, 4)
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
总结:
Numpy的reshape()函数可以方便地改变数组的形状,并且不会改变数组元素的总数。使用该函数可以根据需求灵活地调整数组的结构,提高数据处理的效率和便利性。