关于numpy数组轴的使用详解

关于numpy数组轴的使用详解

在NumPy中,轴(axis)是指数组的维度,也可以理解为数组的某一维度的编号。在对数组进行操作时,指定轴可以帮助我们对数组进行特定的计算和操作。

以下是一些常见的轴使用示例:

  1. 计算数组的和或平均值

我们可以使用np.sum()np.mean()函数计算数组在某个轴上的和或平均值。例如,对于一个二维数组a,我们可以计算它的每一行或每一列的和或平均值:


import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# 计算每一行的和
row_sum = np.sum(a, axis = 1)
print(row_sum)#[6 15 24]

# 计算每一列的平均值
col_mean = np.mean(a, axis = 0)
print(col_mean)#[4. 5. 6.]

  1. 数组的转置

使用np.transpose()函数可以对数组进行转置操作,即将数组的行和列互换。例如,对于一个二维数组a,我们可以将它转置为另一个二维数组b:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# 将a转置为b
b = np.transpose(a)
print(b)

#[[1 4 7]

#[2 5 8]

#[3 6 9]]

  1. 数组的拼接和分割

使用np.concatenate()函数可以将多个数组沿着某个轴进行拼接。例如,对于两个二维数组a和b,我们可以将它们沿着行轴进行拼接:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6]
])
b = np.array([
    [7, 8, 9],
    [10, 11, 12]
])

# 沿着行轴拼接a和b
c = np.concatenate((a, b), axis = 0)
print(c)

#[[1 2 3]

#[4 5 6]

#[7 8 9]

#[10 11 12]]

使用np.split()函数可以将数组沿着某个轴进行分割。例如,对于一个二维数组a,我们可以将它沿着列轴分割为三个数组:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# 沿着列轴分割a为三个数组
b, c, d = np.split(a, 3, axis = 1)
print(b)

#[[1]

#[4]

#[7]]
print(c)

#[[2]

#[5]

#[8]]
print(d)

#[[3]

#[6]

#[9]]