vectorspace_dimensionality: 计算一组向量张成的维度
一个函数,用于计算一组向量(排列成矩阵的列)所张成的维度数量。
from mlxtend.math import vectorspace_dimensionality
概述
给定一组向量,排列成矩阵的列,vectorspace_dimensionality
使用 Gram-Schmidt 过程 [1] 计算该向量空间所张成的维度(即超体积)数量。具体来说,由于 Gram-Schmidt 过程产生的向量要么是零向量,要么是范数归一化的向量(即如果输入是一组线性独立向量,则生成一组标准正交向量),因此向量范数之和对应于向量集的维度数量。
参考
- [1] https://en.wikipedia.org/wiki/Gram–Schmidt_process
示例 1 - 计算向量空间的维度
假设我们有两个基向量和作为矩阵的列。由于这两个向量线性独立,它们张成的空间自然是一个平面(二维空间)。
import numpy as np
from mlxtend.math import vectorspace_dimensionality
a = np.array([[1, 0],
[0, 1]])
vectorspace_dimensionality(a)
2
然而,如果一个向量是另一个向量的线性组合,很直观地可以看到向量集描述的空间仅仅是一条线,也就是一维空间。
b = np.array([[1, 2],
[0, 0]])
vectorspace_dimensionality(a)
2
如果 3 个向量相互之间都线性独立,则向量空间的维数是一个体积(即三维空间)。
d = np.array([[1, 9, 1],
[3, 2, 2],
[5, 4, 3]])
vectorspace_dimensionality(d)
3
同样,如果一对向量线性相关(这里:第 1 行和第 2 行),这将减少一个维度。
c = np.array([[1, 2, 1],
[3, 6, 2],
[5, 10, 3]])
vectorspace_dimensionality(c)
2
API
vectorspace_dimensionality(ary)
计算向量集张成的超体积
参数
-
ary
: 类似数组,形状=[num_vectors, num_vectors]一组正交向量(排列成矩阵的列)
返回值
-
dimensions
: int一个整数,表示向量集张成的“维度”超体积
示例
有关用法示例,请参阅 https://mlxtend.cn/mlxtend/user_guide/math/vectorspace_dimensionality/