欢迎访问宙启技术站
智能推送

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()函数在现有数组上增加新的维度。