numpy.transpose()函数用于交换数组的轴。
numpy.transpose(a, axes=None)
.
返回值是输入数组的轴顺序被反转的新数组。
以下是一个使用numpy.transpose()的例子:
import numpy as np
# 创建一个二维数组
original_array = np.array([[1, 2, 3],
[4, 5, 6]])
# 使用transpose进行数组转置
transposed_array = np.transpose(original_array)
# 输出原始数组和转置后的数组
print("原始数组:")
print(original_array)
print("\n转置后的数组:")
print(transposed_array)
在这个例子中,原始数组是一个2x3的数组,通过numpy.transpose()进行转置后,得到了一个3x2的数组。输出结果如下:
原始数组:
[[1 2 3]
[4 5 6]]
转置后的数组:
[[1 4]
[2 5]
[3 6]]
可以看到,数组的行和列发生了交换。
当我们使用numpy.transpose()来处理三维矩阵时,我们需要注意轴的顺序。以下是一个包含输出的例子:
import numpy as np
# 创建一个三维数组
original_array = np.array([[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]],
[[13, 14, 15], [16, 17, 18]]])
# 使用transpose进行数组转置,指定轴的顺序
transposed_array = np.transpose(original_array, axes=(2, 0, 1))
# 输出原始三维数组和转置后的数组
print("原始三维数组:")
print(original_array)
print("\n指定轴顺序后的转置数组:")
print(transposed_array)
在这个例子中,原始数组是一个3x2x3的三维数组。我们使用numpy.transpose()指定了轴的顺序为(2, 0, 1),即将原始数组的第三个轴移动到第一个位置,第一个轴移到第二个位置,第二个轴移到第三个位置。输出结果如下:
原始三维数组:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]
[[13 14 15]
[16 17 18]]]
指定轴顺序后的转置数组:
[[[ 1 7 13]
[ 4 10 16]]
[[ 2 8 14]
[ 5 11 17]]
[[ 3 9 15]
[ 6 12 18]]]
可以看到,三维数组的轴经过指定的顺序进行了转置。
numpy.swapaxes()函数用于交换数组的两个轴。下面分别给出二维矩阵和三维矩阵的例子:
二维矩阵的例子:
import numpy as np
# 创建一个二维数组
matrix_2d = np.array([[1, 2, 3],
[4, 5, 6]])
# 使用swapaxes进行轴交换
result_2d = np.swapaxes(matrix_2d, 0, 1)
# 输出原始二维数组和轴交换后的数组
print("原始二维数组:")
print(matrix_2d)
print("\n轴交换后的数组:")
print(result_2d)
输出结果如下:
原始二维数组:
[[1 2 3]
[4 5 6]]
轴交换后的数组:
[[1 4]
[2 5]
[3 6]]
三维矩阵的例子:
# 创建一个三维数组
matrix_3d = np.array([[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]],
[[13, 14, 15], [16, 17, 18]]])
# 使用swapaxes进行轴交换
result_3d = np.swapaxes(matrix_3d, 0, 2)
# 输出原始三维数组和轴交换后的数组
print("原始三维数组:")
print(matrix_3d)
print("\n轴交换后的数组:")
print(result_3d)
输出结果如下:
原始三维数组:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]
[[13 14 15]
[16 17 18]]]
轴交换后的数组:
[[[ 1 7 13]
[ 4 10 16]]
[[ 2 8 14]
[ 5 11 17]]
[[ 3 9 15]
[ 6 12 18]]]
可以看到,numpy.swapaxes()在这两个例子中分别对二维和三维数组进行了轴的交换。
numpy.rollaxis() 函数用于向后滚动特定的轴,使其成为指定维度的第一个轴。
numpy.rollaxis(array, axis, start=0)
.
二维矩阵的例子:
import numpy as np
# 创建一个二维数组
matrix_2d = np.array([[1, 2, 3],
[4, 5, 6]])
# 使用 rollaxis 将第二个轴滚动到第一个位置
result_2d = np.rollaxis(matrix_2d, 1)
# 输出原始二维数组和滚动后的数组
print("原始二维数组:")
print(matrix_2d)
print("\n滚动后的数组:")
print(result_2d)
输出结果如下:
原始二维数组:
[[1 2 3]
[4 5 6]]
滚动后的数组:
[[1 4]
[2 5]
[3 6]]
三维矩阵的例子:
# 创建一个三维数组
matrix_3d = np.array([[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]],
[[13, 14, 15], [16, 17, 18]]])
# 使用 rollaxis 将第三个轴滚动到第一个位置
result_3d = np.rollaxis(matrix_3d, 2)
# 输出原始三维数组和滚动后的数组
print("原始三维数组:")
print(matrix_3d)
print("\n滚动后的数组:")
print(result_3d)
输出结果如下:
原始三维数组:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]
[[13 14 15]
[16 17 18]]]
滚动后的数组:
[[[ 1 7 13]
[ 4 10 16]]
[[ 2 8 14]
[ 5 11 17]]
[[ 3 9 15]
[ 6 12 18]]]
可以看到,通过 numpy.rollaxis() 函数,可以方便地实现对二维和三维矩阵轴的滚动。