趋近智
现在我们已经了解了什么是矩阵——一个由行和列组成的矩形数字排列,接下来我们来看一些具有独特结构和性质的特定矩阵类型。认识这些特殊形式是有益的,因为它们在线性代数和机器学习的计算和理论探讨中经常出现。
最直接的特殊类型是方阵。顾名思义,方阵是行数和列数相等的矩阵。如果一个矩阵 有 行和 列(一个 矩阵),当 时,它就是方阵。
例如,以下是几个方阵:
方阵:
方阵:
方阵很重要,因为许多重要的矩阵运算和原理,例如矩阵求逆和行列式(我们稍后会提及),主要都是针对它们定义的。
在NumPy中,方阵就是一个2D数组,其中第一维度(行数)等于第二维度(列数)。你可以使用.shape属性来检查这一点。
import numpy as np
B = np.array([[1, 2],
[3, 4]])
print(f"矩阵 B:\n{B}")
print(f"B 的形状: {B.shape}") # 输出: B 的形状: (2, 2)
print(f"B 是方阵吗? {B.shape[0] == B.shape[1]}") # 输出: B 是方阵吗? True
C = np.array([[9, 8, 7],
[6, 5, 4],
[3, 2, 1]])
print(f"\n矩阵 C:\n{C}")
print(f"C 的形状: {C.shape}") # 输出: C 的形状: (3, 3)
print(f"C 是方阵吗? {C.shape[0] == C.shape[1]}") # 输出: C 是方阵吗? True
# 非方阵示例
D = np.array([[1, 2, 3],
[4, 5, 6]])
print(f"\n矩阵 D:\n{D}")
print(f"D 的形状: {D.shape}") # 输出: D 的形状: (2, 3)
print(f"D 是方阵吗? {D.shape[0] == D.shape[1]}") # 输出: D 是方阵吗? False
单位矩阵,通常记作 或 (其中 表示大小),是一种特殊的方阵,它在普通乘法中扮演着类似于数字1的角色。
单位矩阵的主对角线(从左上角到右下角的对角线)上是1,其他位置都是0。
以下是 和 单位矩阵:
单位矩阵的主要性质是,当你用它乘以任何其他矩阵 (维度兼容)时,结果仍然是 。也就是说, 且 。这一性质使其在矩阵代数中具有重要地位,尤其是在讨论矩阵逆时。
NumPy 提供了便捷的函数来创建单位矩阵:np.identity(n) 或 np.eye(n)。两者都能创建一个 的单位矩阵。
import numpy as np
# 创建一个 3x3 单位矩阵
I_3 = np.identity(3)
print(f"3x3 单位矩阵 (使用 np.identity):\n{I_3}")
# 使用 np.eye 创建一个 4x4 单位矩阵
I_4 = np.eye(4)
print(f"\n4x4 单位矩阵 (使用 np.eye):\n{I_4}")
零矩阵,常记作 ,是一个所有元素都为零的矩阵。与单位矩阵不同,零矩阵不必是方阵。它可以是任何维度()的。
以下是一些示例:
零矩阵:
(方阵)零矩阵:
零矩阵在标准算术中作用类似于数字0。将一个零矩阵加到另一个矩阵 (相同维度)上时,会使 保持不变()。将任何矩阵 乘以一个零矩阵(维度兼容)都会得到一个零矩阵(,)。
在NumPy中,你可以使用 np.zeros() 函数轻松创建零矩阵,将所需形状指定为元组 (rows, columns)。
import numpy as np
# 创建一个 2x3 零矩阵
O_2x3 = np.zeros((2, 3))
print(f"2x3 零矩阵:\n{O_2x3}")
# 创建一个 3x3 零矩阵
O_3x3 = np.zeros((3, 3))
print(f"\n3x3 零矩阵:\n{O_3x3}")
了解这些矩阵类型——方阵、单位矩阵和零矩阵——为后续章节中学习更复杂的矩阵性质和运算提供了铺垫。在为机器学习处理线性代数时,你会经常遇到这些主要结构。
这部分内容有帮助吗?
identity 函数的官方文档,对于在 Python 中创建单位矩阵很有用。zeros 函数的官方文档,提供了创建零矩阵的详细信息。© 2026 ApX Machine Learning用心打造