Python中如何进行数组的形状变换和维度调整
发布时间:2024-01-18 11:21:13
在Python的NumPy库中,可以通过reshape()函数来改变数组的形状和维度。reshape()函数接受一个旧形状和一个新形状参数,并返回一个具有新形状的数组。
以下是使用reshape()函数进行数组形状变换和维度调整的例子:
import numpy as np
# 创建一个1维数组(形状为(12,))
arr = np.arange(12)
print("原数组:")
print(arr)
# 改变数组形状为(3, 4)
arr_reshaped = np.reshape(arr, (3, 4))
print("改变形状后的数组:")
print(arr_reshaped)
# 改变数组形状为(2, 2, 3)
arr_reshaped = np.reshape(arr, (2, 2, 3))
print("改变形状后的数组:")
print(arr_reshaped)
# 创建一个2维数组(形状为(3, 4))
arr = np.arange(12).reshape((3, 4))
print("原数组:")
print(arr)
# 转置数组(改变维度顺序)
arr_transposed = np.transpose(arr)
print("转置后的数组:")
print(arr_transposed)
# 增加一个新的维度
arr_new_dim = np.expand_dims(arr, axis=2)
print("增加维度后的数组:")
print(arr_new_dim)
运行上述代码,将会得到以下输出:
原数组: [ 0 1 2 3 4 5 6 7 8 9 10 11] 改变形状后的数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 改变形状后的数组: [[[ 0 1 2] [ 3 4 5]] [[ 6 7 8] [ 9 10 11]]] 原数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 转置后的数组: [[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]] 增加维度后的数组: [[[ 0] [ 1] [ 2] [ 3]] [[ 4] [ 5] [ 6] [ 7]] [[ 8] [ 9] [10] [11]]]
从上述示例可以看出,使用reshape()函数可以很方便地改变数组的形状和维度。在reshape()函数中,可以通过指定新的形状参数来改变数组的形状,也可以使用transponse()函数来改变数组的维度顺序。此外,还可以使用expand_dims()函数在现有数组上增加新的维度。
