📌  相关文章
📜  a = np.array([0, 0, 0]) 和 a = np.array([[0, 0, 0]]) (1)

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

Numpy数组的不同形态

当我们在使用Numpy时,可能会遇到类似这样的数组定义:a = np.array([0, 0, 0])a = np.array([[0, 0, 0]]),两者看起来非常相似,但实际上有很大的不同。

1. 创建一维数组

首先我们先来看第一个定义:a = np.array([0, 0, 0]),它定义了一个一维数组,即向量。我们可以通过以下代码来验证:

import numpy as np

a = np.array([0, 0, 0])
print(type(a))
print(a.shape)

输出结果是:

<class 'numpy.ndarray'>
(3,)

可以看到,a 的类型是 numpy.ndarray,形状是 (3,)。这意味着它是一个一维数组,有3个元素。

2. 创建二维数组

接下来我们看第二个定义:a = np.array([[0, 0, 0]]),它定义了一个二维数组,即矩阵。我们可以通过以下代码来验证:

import numpy as np

a = np.array([[0, 0, 0]])
print(type(a))
print(a.shape)

输出结果是:

<class 'numpy.ndarray'>
(1, 3)

可以看到,a 的类型依然是 numpy.ndarray,但形状是 (1, 3),这意味着它是一个二维数组,只有1行,但有3列。

3. 区别

通过上面的示例,我们可以很清楚地看到这两种方式的不同。一维数组是一个向量,二维数组是一个矩阵。具体来说:

  • 一维数组只有一个维度,元素只能在一个方向上排列。它可以看作是一个向量或一列数字。
  • 二维数组有两个维度,元素在两个方向上排列。它可以看作是一个矩阵或一个表格。

这种差异非常重要,因为它影响了我们访问和操作这些数组的方式。如果我们知道一个数组是一维的,我们只需要考虑一个下标就可以访问它。但如果我们知道它是二维的,我们必须考虑行和列的下标来访问它的元素。

4. 总结
  • 一维数组可表示为行向量,也可表示为列向量,但行向量在使用时不方便。
  • 二维数组为矩阵,可以表示为行矩阵或列矩阵。
  • 在使用时需明确数组的维度和形状,以便进行正确的操作。

以上就是关于Numpy数组不同形态的介绍,希望能对大家有所帮助。