ndarray数组的转置是指将数组的维度重新排列,而轴对换是指根据指定的维度进行转置操作。在NumPy中,可以通过transpose和swapaxes方法进行转置和轴对换操作。
- 转置操作
转置操作可以使用ndarray的transpose方法进行,该方法可以接受一个由对应维度索引组成的tuple作为参数。如果不指定参数,transpose方法默认对所有轴进行反转置操作。
示例1:对于一个2x3的数组a,将其转置为3x2的数组b,可以使用transpose方法:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.transpose(1, 0)
print("原数组:")
print(a)
print("转置后的数组:")
print(b)
输出:
原数组:
[[1 2 3]
[4 5 6]]
转置后的数组:
[[1 4]
[2 5]
[3 6]]
在上述代码中,将tuple (1, 0) 作为参数传递给了transpose方法,表示对第一个轴和第二个轴进行转置操作。因此,b的第一维度对应a的第二维度,b的第二维度对应a的第一维度,结果为3x2的数组。
- 轴对换操作
轴对换操作可以使用ndarray的swapaxes方法进行,该方法可以接受两个要交换位置的轴的索引作为参数。对于一个二维数组,轴的索引分别为0和1。
示例2:对于一个3x4的数组a,将其第一维度和第二维度进行对换,即得到一个4x3的数组b,可以使用swapaxes方法:
import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
b = a.swapaxes(0, 1)
print("原数组:")
print(a)
print("轴对换后的数组:")
print(b)
输出:
原数组:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
轴对换后的数组:
[[ 1 5 9]
[ 2 6 10]
[ 3 7 11]
[ 4 8 12]]
在上述代码中,使用swapaxes方法将第一维度和第二维度进行对换,即将0和1作为参数传递给该方法,因此b的第一维度对应于a的第二维度,b的第二维度对应于a的第一维度,结果为4x3的数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ndarray数组的转置(transpose)和轴对换方式 - Python技术站