Skip to main content

Pure-Python linear algebra Matrix class (no third-party dependencies).

Project description

GrokLA: 《线性代数那些事儿》函数库

GrokLA (Grok Linear Algebra) 是《线性代数那些事儿》一书的配套函数库。

本书与本代码库的核心理念在于:跨越抽象理论与工程实践的鸿沟。为了让读者能够真正接触到矩阵运算的底层逻辑,本库坚持 100% 纯 Python 实现,零第三方依赖(无 NumPy 或 SciPy)。通过查阅和调用本库的 API,读者可以直观地理解基础矩阵运算、方程组求解以及面向工程应用(如主成分分析 PCA)的特征值提取是如何在计算机底层实现的。

安装指南

在终端或命令行中运行以下命令即可安装:

pip install GrokLA

要求:Python 3.9 及以上版本。

核心 API 手册

所有的核心功能都封装在 Matrix 类中,语法设计贴近现代 Python 规范,并支持直观的运算符重载。以下是本库提供的全部可用函数及其功能说明:

1. 运算符重载 (Magic Methods)

  • __add__(other): 支持 A + B。执行矩阵加法。
  • __sub__(other): 支持 A - B。执行矩阵减法。
  • __mul__(other): 支持标量乘法 A * k 与矩阵乘法 A * B
  • __rmul__(other): 支持反向标量乘法 k * A
  • __matmul__(other): 支持 Python 现代矩阵乘法语法 A @ B

2. 矩阵生成与属性提取

  • shape(): 获取矩阵维度,返回格式为 (行数, 列数) 的元组。
  • clone(): 创建当前矩阵的深拷贝,防止在复杂的工程运算中意外修改原数据。
  • Matrix.eye(n): 类方法。生成一个大小为 n x n 的单位矩阵。
  • Matrix.zeros(m, n): 类方法。生成一个大小为 m x n 的全零矩阵。

3. 基础代数运算

  • add(other): 矩阵加法,要求参与运算的两矩阵维度完全一致。
  • sub(other): 矩阵减法,要求参与运算的两矩阵维度完全一致。
  • scale(k): 标量乘法,将矩阵中的每一个元素乘以常数 k。
  • dot(other): 矩阵乘法。严格遵循矩阵乘法的内维度匹配规则。

4. 矩阵变换与特征提取

  • transpose(): 计算并返回当前矩阵的转置矩阵。
  • trace(): 计算方阵的迹 (Trace),即主对角线元素之和。
  • rank(): 计算矩阵的秩。底层采用带容差控制的高斯消元法,数值稳定性极高。

5. 核心线性代数定理实现

  • det(): 计算方阵的行列式。采用带部分主元选择的高斯消元法,大幅优化了计算复杂度与数值稳定性。
  • minor(i, j): 计算指定位置的余子式,即去除第 i 行与第 j 列后子矩阵的行列式。
  • cofactor(i, j): 计算指定位置的代数余子式。
  • adjoint(): 计算并返回伴随矩阵。
  • inv(): 计算逆矩阵。基于高斯-若尔当消元法 (Gauss-Jordan Elimination) 实现,包含对奇异矩阵的安全校验。

6. 高阶工程应用

  • solve(b): 求解线性方程组 Ax = b。支持传入一维列表或列向量矩阵,直接返回最优解矩阵。
  • decompose(): 执行 LU 分解 (A = LU)。将方阵拆解为一个下三角矩阵 L 和一个上三角矩阵 U,用于优化工程实践中高频方程组求解的计算开销。
  • power_iteration(num_simulations): 使用幂法提取方阵的主特征值(绝对值最大)及其对应的主特征向量。这是降维算法(如 PCA)底层极其核心的基础算法。

许可证

本项目采用 MIT License 开源协议。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grokla-0.1.2.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grokla-0.1.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file grokla-0.1.2.tar.gz.

File metadata

  • Download URL: grokla-0.1.2.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for grokla-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0270a82d85843b722c33247a27f5b2f89335e19ef0a9a451f6bff8ddc8a0a2a2
MD5 fca7f5191f8e1cf7c5bdb1b08dc9f612
BLAKE2b-256 8a9fa4ebf4bf7dd3051e0817465103c5ca5a60ea3e48eb8dab0b829cfa010805

See more details on using hashes here.

File details

Details for the file grokla-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: grokla-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for grokla-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ff29c4038389a6b7efd25c1a99d85f1bae78e010e3fd04ff0d7eea74c9a1771
MD5 d37621f5ccd967789085db253671f4a2
BLAKE2b-256 e6226878f8fe185126961c3ca88dce6dfe9d0c67a542dfb0051b1bd6bd1fa648

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page