Skip to main content

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

Project description

GrokLA: 《线性代数哪些事》官方配套代码库

GrokLA (Grok Linear Algebra) 是《线性代数哪些事》一书的官方配套 Python 基础矩阵库。

本书与本代码库的核心理念在于:跨越抽象理论与工程实践的鸿沟。为了让读者能够真正接触到矩阵运算的底层逻辑,本库坚持 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.1.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.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grokla-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 941ff09ebefd54805cbe245c9117777df87dfe2f65ff262cf160a272aeefc0f4
MD5 94a0cba8d006cdbe4a0233a199ea51f4
BLAKE2b-256 73aa1616dd1ee2cf1ff8416e2f2f44839512e47c1fcac89dfb3806bba1feed16

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grokla-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4d58dd228e83e470e3c70f5309a906c66868314db837a43dc613797f1b331ed4
MD5 fd1fcc459d20f73fe8b1e39444d8f657
BLAKE2b-256 412e9966801b32b1055f5ef62bc6f9faa3c2938ce31a1350a1f946be3d588690

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