Numpy多维数组中的Axis

Numpy多维数组中的Axis

在本文中,我们将介绍在NumPy多维数组中如何使用轴(Axis)。轴是指沿着数组进行索引和计算的方向。理解轴是使用NumPy进行多维数组操作的一项关键技能。

阅读更多:Numpy 教程

什么是轴?

在NumPy中,轴指的是数组维度的方向。一个一维数组只有一个轴,而一个二维数组有两个轴:行和列。对于一个n维数组,它将具有n个轴。以下是一个三维数组示例,其中将具有三个轴x,y和z:

import numpy as np

arr = np.array([
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[19, 20, 21], [22, 23, 24], [25, 26, 27]],
])

print(arr.shape)
# 输出:(3, 3, 3)
Python

在这个三维数组中,第一个轴是横向,第二个轴是纵向,第三个轴是深度。

不同方向的轴

不同轴的方向取决于数组的形状。以下是三种不同数组形状的轴方向示例:

一维数组

一个一维数组只有一个轴,它是从左到右的方向。

import numpy as np

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

print(arr.shape)
# 输出:(5,)
Python

二维数组

二维数组有两个轴:第一个轴是从上到下的行方向,第二个轴是从左到右的列方向。

import numpy as np

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

print(arr.shape)
# 输出:(3, 3)
Python

三维数组

三维数组有三个轴:第一个轴是从上到下的行方向,第二个轴是从左到右的列方向,第三个轴是从前到后的深度方向。

import numpy as np

arr = np.array([
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[19, 20, 21], [22, 23, 24], [25, 26, 27]],
])

print(arr.shape)
# 输出:(3, 3, 3)
Python

理解轴的重要性

理解轴的重要性就是理解如何在多维数组中计算和操作数据。它使您可以在特定的轴上进行一些操作,如求和、取平均值、最大值、最小值等等。

以下是四个常见的数组操作,它们在不同轴上进行操作:

1. 求和

使用axis参数将在特定的轴上求和。以下是一个三维数组的例子,对于第一个轴(即行方向),我们将求和:

import numpy as np

arr = np.array([
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[19, 20, 21], [22, 23, 24], [25, 26, 27]],
])

sum_axis_0 = np.sum(arr, axis=0)

print(sum_axis_0)
Python

输出:

[[30 33 36]
 [39 42 45]
 [51 54 57]]
Python

在本例中,np.sum(arr, axis=0)将沿着第一个轴(即第一个方括号)求和,因此它计算每个单元格的值。最终,它返回了一个二维数组,其中每个元素都是沿着第一个轴的总和。

2. 取平均值

您可以使用axis参数沿着特定的轴来取平均值。以下是一个二维数组的例子,对于第一个轴(即行方向),我们将取平均数:

import numpy as np

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

mean_axis_0 = np.mean(arr, axis=0)

print(mean_axis_0)
Python

输出:

[5.5 6.5 7.5]
Python

在本例中,np.mean(arr, axis=0)将沿着第一个轴求平均数,因此它计算每个单元格的平均数。它返回了一个一维数组,其中的每个元素都是沿着第一个轴的平均值。

3. 最大值

使用axis参数沿着特定的轴可以查找最大值。以下是一个三维数组的例子,对于第三个轴(即深度方向),我们将查找最大值:

import numpy as np

arr = np.array([
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[19, 20, 21], [22, 23, 24], [25, 26, 27]],
])

max_axis_2 = np.max(arr, axis=2)

print(max_axis_2)
Python

输出:

[[ 3  6  9]
 [12 15 18]
 [21 24 27]]
Python

在本例中,np.max(arr, axis=2)将沿着第三个轴(即最里面的方括号)查找最大值,因此它将在每个深度处找到最大值。它返回了一个二维数组,其中的每个元素都是沿着第三个轴的最大值。

4. 最小值

您也可以使用axis参数沿着特定的轴查找最小值。以下是一个二维数组的例子,对于第二个轴(即列方向),我们将查找最小值:

import numpy as np

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

min_axis_1 = np.min(arr, axis=1)

print(min_axis_1)
Python

输出:

[1 4 7 10]
Python

在本例中,np.min(arr, axis=1)将沿着第二个轴(即第二个方括号)查找最小值,因此它将在每列中查找最小值。它返回了一个一维数组,其中的每个元素都是沿着第二个轴的最小值。

总结

了解轴的概念非常重要,可以帮助您更好地理解在NumPy中进行多维数组的操作。使用axis参数,您可以在特定的轴上进行许多不同的操作,如求和、取平均值、最大值、最小值等等。熟练使用轴参数将有助于您更有效地操作多维数组。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册