📜  python numpy 数组更改轴 - Python (1)

📅  最后修改于: 2023-12-03 14:46:01.130000             🧑  作者: Mango

Python numpy数组更改轴

在numpy中,我们可以使用transpose或者T方法来转置数组。这两个方法都可以改变数组的轴,以达到不同的操作需求。

transpose方法

transpose方法可以接受一个由轴编号组成的元组,这个元组表示我们希望如何更改轴的顺序,该方法将返回转置后的新数组。

import numpy as np

# 创建一个2*3的数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 转置数组
arr_transposed = arr_2d.transpose()

print(arr_transposed)    # 输出 [[1 4]
                        #       [2 5]
                        #       [3 6]]

在本例中,arr_2d是一个23的数组,我们使用transpose()方法将其转换为一个32的数组,返回的结果是一个新的数组。

在对多维数组进行转置时,可以传入一个以轴编号组成的元组作为参数,表示需要将哪些轴转置:

import numpy as np

# 创建一个2*2*3的数组
arr_3d = np.array([[[1, 2, 3], [4, 5, 6]],
                   [[7, 8, 9], [10, 11, 12]]])

# 转置数组
arr_transposed = arr_3d.transpose((1, 0, 2))

print(arr_transposed)
# 输出 [[[ 1  2  3]
#         [ 7  8  9]]
#
#        [[ 4  5  6]
#         [10 11 12]]]

这个例子中arr_3d是一个223的数组,我们使用transpose((1, 0, 2))方法将其转换成一个223的数组。该方法使用了一个元组(1, 0, 2)来表示使用轴1、轴0、轴2的顺序转置数组。

T方法

numpy数组还提供了一个T方法。该方法是transpose方法的简写,它默认使用轴的倒序进行转置。

import numpy as np

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

arr_transposed = arr_2d.T

print(arr_transposed)    # 输出 [[1 4]
                        #       [2 5]
                        #       [3 6]]

在相同的情况下,transpose方法和T方法产生的结果是相同的,因为传递给transpose方法的默认参数就是一个含有各种轴编号的元组(::-1)

总之,numpy提供了很多方便的方法来更改数组的轴。使用这些方法可以让我们更加轻松的处理数组。