仓颉 Scientific 库:为科学计算打造的类型安全高性能新选择

Scientific 库是仓颉语言在科学计算领域的重要基础设施,旨在为开发者提供一套类型安全、高性能、功能完备的科学计算工具链。

目标与定位

仓颉 Scientific 库对标 Python 生态中的 numpy、scipy、matplotlib,以及 MATLAB 和 Julia 等主流科学计算语言与环境。其目标是:

  • 为仓颉语言在科学计算领域的应用提供坚实基础;

  • 在保持高性能的同时,提供更强的类型安全性;

  • 降低从 Python/MATLAB 生态迁移至仓颉的学习成本。

核心功能概览

1. 线性代数

提供与 numpy/scipy 类似的向量、矩阵与张量操作,包括:

  • 数组创建:array, arange, linspace, meshgrid

  • 数组操作:reshape, flatten, concatenate, vstack, hstack

  • 矩阵运算:inv, solve, det, norm, lstsq, pinv

  • 特征值与分解:eig, svd, lu, cholesky, qr 等

2. 绘图功能

基于 C++ 的 matplot++ 库封装,提供与 matplotlib 类似的接口,支持 55 种图形类型,包括:

  • 线图、3D 图、直方图、条形图、箱线图、等高线图、极坐标图、曲面图等

  • 支持地图、向量场、离散图等多种专业可视化需求

3. 统计分析

实现约 80 个连续分布(如 Gamma、T分布)与多种离散分布(如 Bernoulli、Poisson),并提供:

  • 概率密度函数(PDF)与累积分布函数(CDF)

  • 多元分布(如多元正态、Dirichlet)

  • 摘要函数(均值、方差、偏度、峰度等)

  • 统计检验(t检验、卡方检验、Mann-Whitney U 检验等)

  • 相关性分析(Pearson、Spearman、线性回归等)

类型安全:仓颉的独特优势

与 Python 或 MATLAB 等动态类型语言不同,仓颉具备强类型系统,能在编译期发现类型错误,显著提升代码的可维护性与可靠性。具体体现在:

  • 数值类型层次结构:如 Real、Float、Integer、Complex 等,函数可明确指定参数类型;

  • 多维数组类型:定义 AbstractTensor 及其子类 Vector、Matrix、Tensor,避免维度不匹配的错误。

高性能:底层调用 BLAS

通过调用高效的 BLAS 后端(默认使用 OpenBLAS),仓颉 Scientific 库在矩阵运算等核心操作上达到与 numpy 和 Julia 相近的性能水平。

实战演示:线性回归

点击链接查看演示视频:仓颉workshop38期(0:23:06议题2开始),在该演示视频中詹老师展示了如何使用仓颉 Scientific 库实现线性回归,包括:

  • 使用封装好的 linregress 函数;

  • 使用更底层的 lstsq 函数;

  • 结合绘图库可视化回归结果与残差分布。

整个过程体现了仓颉在类型检查代码清晰度方面的优势,即便是在类型转换或维度不匹配时,也能在编译阶段及时报错,避免运行时隐患。

未来计划

  1. 系统建模

    基于仓颉的元编程机制,开发嵌入式系统建模与仿真语言,目标替代 MATLAB/Simulink 在该领域的地位。

  2. 机器学习

    基于现有线性代数与统计基础,实现神经网络与传统机器学习算法,支持 CPU/GPU 计算。

  3. 教育场景与交互式环境

    推动在教学中的应用,提供交互式科学计算体验,降低学习与使用门槛。

开源与社区共建

仓颉 Scientific 库已经开源 ,代码仓库位于: https://gitcode.com/Cangjie-TPC/scientific

欢迎对科学计算、系统建模、机器学习感兴趣的开发者加入,共同推动仓颉生态的发展。

总结

仓颉 Scientific 库不仅是一个科学计算库,更是仓颉语言在高性能计算与系统级开发中迈出的重要一步。它融合了类型安全、高性能与易用性,有望成为未来国产编程语言在科研、教育与工业应用中不可或缺的一环。

相关推荐
九丘教育4 个月前
【华为仓颉编程语言】运行第一个仓颉程序
华为·鸿蒙·仓颉编程语言·仓颉·仓颉语言
软件开发技术深度爱好者5 个月前
华为仓颉编程语言的表达式及其特点
华为·仓颉编程语言
仓颉编程语言7 个月前
开源无界 智联欧陆——仓颉计划携手OpenHarmony共绘万物互联新图景
华为·harmonyos·鸿蒙·仓颉编程语言
仓颉编程语言7 个月前
仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮
人工智能·华为·开源·鸿蒙·仓颉编程语言
仓颉编程语言8 个月前
南京大学OpenHarmony技术俱乐部正式揭牌 仓颉编程语言引领生态创新
harmonyos·鸿蒙·仓颉编程语言
仓颉编程语言1 年前
仓颉编程语言亮相全国大学生计算机系统能力大赛
仓颉编程语言
仓颉编程语言1 年前
仓颉语言运行时轻量化实践
仓颉编程语言
youyouxiong2 年前
仓颉编程语言
仓颉编程语言