4 向量的定义

4 向量的定义

线性代数中的向量定义与表示

在数学和机器学习中,向量是一个核心概念。向量可以看作是一个有序的数值集合,它在数据分析和机器学习中扮演着至关重要的角色。以下将详细介绍向量的定义和表示。

向量是一个包含多个元素(通常是数字)的有序集合。通常我们用圆括号或者方括号来表示向量。例如,一个二维向量可以表示为:

$$
\mathbf{v} = (v_1, v_2)
$$

其中,$v_1$ 和 $v_2$ 是向量的组件。更一般地,$n$ 维向量可以表示为:

$$
\mathbf{v} = (v_1, v_2, \ldots, v_n)
$$

向量的表示

在编程和计算中,向量可以用不同的数据结构表示。以下是几种常见的向量表示方式:

  1. 使用列表(List)
    在Python中,向量通常使用列表表示:

    1
    v = [1, 2, 3]  # 这是一个三维向量
  2. 使用NumPy库
    NumPy是Python中进行数值计算的库,它提供了强大的多维数组支持。我们可以这样定义一个向量:

    1
    2
    import numpy as np
    v = np.array([1, 2, 3]) # 使用NumPy创建一个三维向量

在这个例子中,v 是一个三维向量,包含三个元素 1, 2 和 3。

向量的几何意义

向量不仅可以用数字表示,还可以在几何上进行解释。例如,一个二维向量可以表示平面上的一个点或者一个方向。假设有一个向量 $\mathbf{u} = (3, 4)$,它可以被视为从原点 (0, 0) 指向点 (3, 4)。在坐标系中,$\mathbf{u}$ 的长度可以用毕达哥拉斯定理计算:

$$
|\mathbf{u}| = \sqrt{3^2 + 4^2} = 5
$$

向量的运算

向量之间可以进行多种运算,例如加法、减法和数乘。假设有两个三维向量 $\mathbf{a} = (1, 2, 3)$ 和 $\mathbf{b} = (4, 5, 6)$,它们的加法可以表示为:

$$
\mathbf{c} = \mathbf{a} + \mathbf{b} = (1 + 4, 2 + 5, 3 + 6) = (5, 7, 9)
$$

在Python中实现向量加法可以使用NumPy:

1
2
3
4
5
6
import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b # 计算向量的和
print(c) # 输出: [5 7 9]

小结

向量作为线性代数的基础概念之一,其定义和表示直接影响到后续的学习和应用。通过理解向量的基本性质和操作,能够为深入学习机器学习等领域打下坚实的基础。希望这篇简明的教程能为你提供对向量的初步理解和实用的代码示例。

5 矩阵的基本形式

5 矩阵的基本形式

矩阵的定义与表示

矩阵是一种在数学和工程中广泛使用的数学对象,主要用于表示和处理线性变换、系统方程及数据。简单来说,矩阵是一个按照矩形阵列排列的数字或符号集合。

一个矩阵通常用一个大写字母表示,如 $A$,它由$m$行和$n$列的元素组成。我们可以用以下形式来表示一个矩阵:

$$
A = \begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \
a_{21} & a_{22} & \cdots & a_{2n} \
\vdots & \vdots & \ddots & \vdots \
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}
$$

在上述表示法中,$a_{ij}$表示第$i$行第$j$列的元素。矩阵的尺寸(或维度)为$m \times n$,表示它有$m$行和$n$列。

例如,一个$2 \times 3$的矩阵可以表示为:

$$
B = \begin{pmatrix}
1 & 2 & 3 \
4 & 5 & 6
\end{pmatrix}
$$

矩阵的表示方法

矩阵在计算机中常常使用二维数组来表示。以下是一个使用 Python 的示例,展示如何用 NumPy 库创建和操作矩阵:

1
2
3
4
5
6
7
8
9
10
11
import numpy as np

# 创建一个 2×3 矩阵
B = np.array([[1, 2, 3],
[4, 5, 6]])

print("矩阵 B:")
print(B)

# 获取矩阵的维度
print("矩阵 B 的维度:", B.shape)

矩阵的类型

矩阵可以根据其特点分为几种类型:

  1. 行矩阵:只有一行的矩阵,例如 $C = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix}$。
  2. 列矩阵:只有一列的矩阵,例如 $D = \begin{pmatrix} 1 \ 2 \ 3 \end{pmatrix}$。
  3. 方阵:行数和列数相等的矩阵,例如 $E = \begin{pmatrix} 1 & 2 \ 3 & 4 \end{pmatrix}$。
  4. 零矩阵:所有元素为零的矩阵,例如 $F = \begin{pmatrix} 0 & 0 \ 0 & 0 \end{pmatrix}$。

理解矩阵及其表示是学习后续算法和应用的基础,特别是在机器学习数据分析领域。

向量与矩阵的运算

向量与矩阵的运算

在人工智能和机器学习的领域,理解向量矩阵的运算至关重要,这些运算是数据处理和模型训练的基础。本节将详细介绍向量和矩阵的基本运算,包括加法、标量乘法、点积和矩阵乘法。

向量的操作

向量加法

两个向量相加是将它们相同位置的元素相加。设有两个向量 $\mathbf{a} = [a_1, a_2, \ldots, a_n]$ 和 $\mathbf{b} = [b_1, b_2, \ldots, b_n]$,它们的和为:

$$
\mathbf{c} = \mathbf{a} + \mathbf{b} = [a_1 + b_1, a_2 + b_2, \ldots, a_n + b_n]
$$

案例

1
2
3
4
5
6
import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
print("向量加法结果:", c)

标量乘法

向量与标量的乘法是将标量与向量中的每个元素相乘。如果 $\mathbf{a} = [a_1, a_2, \ldots, a_n]$,则

$$
k \cdot \mathbf{a} = [k \cdot a_1, k \cdot a_2, \ldots, k \cdot a_n]
$$

案例

1
2
3
k = 2
result = k * a
print("标量乘法结果:", result)

向量点积

点积(又称内积)是两个向量相同位置的元素相乘后求和。对向量 $\mathbf{a}$ 和 $\mathbf{b}$,其点积定义为:

$$
\mathbf{a} \cdot \mathbf{b} = a_1 b_1 + a_2 b_2 + \ldots + a_n b_n
$$

案例

1
2
dot_product = np.dot(a, b)
print("向量点积结果:", dot_product)

矩阵的操作

矩阵加法

矩阵加法是将对应位置的元素相加。对于两个矩阵 $\mathbf{A}$ 和 $\mathbf{B}$,它们的和 $\mathbf{C}$ 为:

$$
\mathbf{C} = \mathbf{A} + \mathbf{B} \quad 其中 ; \mathbf{C}{ij} = \mathbf{A}{ij} + \mathbf{B}_{ij}
$$

案例

1
2
3
4
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A + B
print("矩阵加法结果:\n", C)

矩阵与标量的乘法

矩阵与标量的乘法是将标量与矩阵中的每个元素相乘,定义为:

$$
k \cdot \mathbf{A} = [k \cdot A_{ij}]
$$

案例

1
2
3
K = 3
result_matrix = K * A
print("标量乘法结果:\n", result_matrix)

矩阵乘法

矩阵乘法是线性代数中重要的运算,且与简单的逐元素乘法不同。假设有两矩阵 $\mathbf{A} \in \mathbb{R}^{m \times n}$ 和 $\mathbf{B} \in \mathbb{R}^{n \times p}$,则它们的乘积 $\mathbf{C} = \mathbf{A} \cdot \mathbf{B}$ 是一个新的矩阵,定义为:

$$
\mathbf{C}{ij} = \sum{k=1}^n \mathbf{A}{ik} \cdot \mathbf{B}{kj}
$$

案例

1
2
3
4
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B)
print("矩阵乘法结果:\n", C)

总结

通过本节的学习,我们掌握了向量与矩阵的基本运算。向量的加法、标量乘法和点积,以及矩阵的加法、标量乘法和乘法都是非常核心的概念。理解这些运算对于后续深入学习机器学习深度学习模块非常重要。