SciPy 常量模块详解:从物理常数到实用技巧
1. 引言在科学计算和工程应用中物理常数、数学常数和单位换算几乎是每个项目都绕不开的基础需求。SciPy 的scipy.constants模块正是为此而生的标准工具库它集中封装了大量经过 CODATA 推荐的物理常数、数学常数以及常用的单位换算函数。本文将从模块结构、常用常量、单位换算到实战案例带你系统掌握scipy.constants的使用方法。2. 模块概览与导入方式scipy.constants是 SciPy 的子模块使用前需要确保已安装 SciPy。推荐使用以下方式导入import scipy.constants as const 查看模块中可用的常量数量 print(len(dir(const)))模块内部主要包含三类内容物理常数如光速、普朗克常数、数学常数如圆周率、自然常数以及单位换算函数如从英里换算到米。下面分别展开介绍。3. 常用物理常数scipy.constants提供了大量高精度的物理常数这些数值基于 CODATA 2018 推荐值。以下代码演示如何获取最常用的几个物理常数import scipy.constants as const 光速米/秒 c const.speed_of_light print(f光速: {c} m/s) 普朗克常数焦耳·秒 h const.Planck print(f普朗克常数: {h} J·s) 引力常数米^3/(千克·秒^2) G const.gravitational_constant print(f引力常数: {G} m^3/(kg·s^2)) 电子质量千克 m_e const.electron_mass print(f电子质量: {m_e} kg) 阿伏伽德罗常数1/摩尔 N_A const.Avogadro print(f阿伏伽德罗常数: {N_A} /mol)运行上述代码你会得到类似下面的输出光速: 299792458.0 m/s 普朗克常数: 6.62607015e-34 J·s 引力常数: 6.6743e-11 m^3/(kg·s^2) 电子质量: 9.1093837015e-31 kg 阿伏伽德罗常数: 6.02214076e23 /mol4. 数学常数除了物理常数模块还内置了常用的数学常数方便在计算中直接引用import scipy.constants as const 圆周率 pi const.pi print(f圆周率: {pi}) 自然常数 e e const.e print(f自然常数: {e}) 黄金比例 golden const.golden_ratio print(f黄金比例: {golden}) 欧拉-马歇罗尼常数 gamma const.EulerGamma print(f欧拉-马歇罗尼常数: {gamma})5. 单位换算功能单位换算是scipy.constants的另一大亮点。模块提供了convert_temperature函数以及一系列基于米制前缀的换算函数极大简化了日常开发中的单位处理。5.1 温度换算import scipy.constants as const 摄氏温度转华氏温度 f const.convert_temperature(100, C, F) print(f100°C {f}°F) 摄氏温度转开尔文温度 k const.convert_temperature(0, C, K) print(f0°C {k} K) 开尔文温度转摄氏温度 c const.convert_temperature(300, K, C) print(f300 K {c}°C)5.2 长度与质量换算import scipy.constants as const 英里转米 meters const.mile print(f1 英里 {meters} 米) 英寸转米 inches const.inch print(f1 英寸 {inches} 米) 磅转千克 pounds const.pound print(f1 磅 {pounds} 千克) 加仑转立方米 gallons const.gallon print(f1 加仑 {gallons} 立方米)6. 米制前缀与科学计数法在处理极大或极小的数值时米制前缀非常实用。scipy.constants提供了从yocto10^-24到yotta10^24的完整前缀常量import scipy.constants as const 常用前缀 print(fkilo: {const.kilo}) # 10^3 print(fmega: {const.mega}) # 10^6 print(fgiga: {const.giga}) # 10^9 print(fmicro: {const.micro}) # 10^-6 print(fnano: {const.nano}) # 10^-9 print(fpico: {const.pico}) # 10^-12 实际应用5 纳米转换为米 length_nm 5 length_m length_nm * const.nano print(f5 纳米 {length_m} 米)7. 实战案例计算氢原子能级下面通过一个完整的物理计算案例展示scipy.constants在科研场景中的实际应用。我们将计算氢原子第 n 能级的能量import scipy.constants as const def hydrogen_energy(n): 计算氢原子第 n 能级的能量单位焦耳 公式: E_n - (m_e * e^4) / (8 * epsilon_0^2 * h^2 * n^2) m_e const.electron_mass e const.elementary_charge epsilon_0 const.epsilon_0 h const.Planck energy -(m_e * e**4) / (8 * epsilon_0**2 * h**2 * n**2) return energy 计算前三个能级 for n in range(1, 4): E hydrogen_energy(n) # 转换为电子伏特1 eV 1.602176634e-19 J E_ev E / const.eV print(fn{n}: E {E:.4e} J {E_ev:.4f} eV)输出结果n1: E -2.1799e-18 J -13.6057 eV n2: E -5.4497e-19 J -3.4014 eV n3: E -2.4221e-19 J -1.5117 eV可以看到基态能量约为 -13.6 eV与理论值高度吻合这得益于模块内置常数的高精度。8. 实战案例单位换算与数据可视化结合在数据分析中经常需要将原始数据统一单位后再进行可视化。以下示例演示如何结合scipy.constants和 Matplotlib 完成单位换算与绘图import numpy as np import matplotlib.pyplot as plt import scipy.constants as const 模拟一组以英里为单位的距离数据 distances_miles np.array([1, 5, 10, 20, 50, 100]) 转换为公里1 英里 1609.344 米 distances_km distances_miles * const.mile / 1000 转换为公里每小时的速度假设 2 小时完成 time_hours 2 speeds_kmh distances_km / time_hours 绘图 plt.figure(figsize(8, 5)) plt.plot(distances_miles, speeds_kmh, markero, linestyle-, colorb) plt.xlabel(距离英里) plt.ylabel(平均速度公里/小时) plt.title(不同距离下的平均速度单位换算示例) plt.grid(True, alpha0.3) plt.show()9. 查看所有可用常量如果你需要查找某个特定常量可以使用dir()函数浏览模块中所有可用的名称或者使用const.physical_constants字典查看完整的物理常数表import scipy.constants as const 查看所有物理常数的键部分 keys list(const.physical_constants.keys()) print(f物理常数总数: {len(keys)}) print(前 10 个常数:) for key in keys[:10]: print(f - {key}) 查看某个常数的详细信息值、单位、不确定度 info const.physical_constants[speed of light in vacuum] print(f\n光速详细信息: {info})输出示例物理常数总数: 300 前 10 个常数: - alpha particle mass - alpha particle mass energy equivalent - alpha particle mass energy equivalent in MeV - alpha particle mass in u - alpha particle molar mass - alpha particle proton mass ratio - alpha particle relative atomic mass - alpha particle rest energy - alpha particle rms charge radius - alpha particle weak mixing angle 光速详细信息: (299792458.0, m s^-1, 0.0)10. 注意事项与最佳实践在使用scipy.constants时有几个要点值得留意精度说明物理常数基于 CODATA 2018 推荐值对于绝大多数工程和科研场景精度足够若需要更高精度或最新 CODATA 值请关注 SciPy 版本更新。单位一致性模块中的常数均采用国际单位制SI在计算时务必保持单位统一避免因混用单位导致结果错误。性能考量常量读取是纯内存操作性能开销极低可以放心在循环或热路径中直接引用。版本兼容scipy.constants在 SciPy 1.x 系列中接口稳定建议使用pip install scipy安装最新稳定版。11. 总结scipy.constants模块虽然体积小巧却是科学计算中不可或缺的基础组件。它既提供了高精度的物理常数和数学常数又内置了灵活的单位换算能力能够显著减少重复造轮子的时间。无论是物理实验数据处理、工程单位换算还是教学演示掌握这个模块都能让你的代码更加简洁、可靠。建议读者结合自己的实际项目尝试用scipy.constants重构现有的常量定义和单位换算逻辑体会它带来的便利。

相关新闻

LLM应用灰度发布实战:Feature Flag在Prompt、模型与AI行为控制中的核心价值

LLM应用灰度发布实战:Feature Flag在Prompt、模型与AI行为控制中的核心价值

1. 从“一键发布”到“渐进式交付”:为什么LLM应用更需要Feature Flag?在传统的软件开发流程里,我们习惯了“开发-测试-发布”的线性模式。一个功能经过内部验证后,便通过一次发布(Release)推送给所有用户。…

2026/10/17 7:50:25 阅读更多 →
大语言模型监督微调(SFT)实战:从原理到代码实现

大语言模型监督微调(SFT)实战:从原理到代码实现

1. 从“续写狂魔”到“听话助手”:SFT的角色与价值 如果你接触过大语言模型,尤其是像GPT-3、LLaMA这类早期的“原始”版本,可能会有一个直观的感受:它像个才华横溢但思维跳跃的“续写狂魔”。你问它“今天天气怎么样?”…

2026/10/20 13:37:57 阅读更多 →
【Android开发日记01】新拟态汉服管理APP - 已开源

【Android开发日记01】新拟态汉服管理APP - 已开源

【Android开发日记01】源码GitHub地址: https://github.com/HiCodeOnline/AndroidHiHanfuWithNeumorphism「裳集」是一款面向汉服爱好者的私有衣橱管理工具。使用新拟态,将汉服、饰品、穿搭组合三大核心模块整合在一个轻量级 Android 应用中。所有数据均…

2026/10/20 17:30:29 阅读更多 →

最新新闻

Sicar-Training-show-V16工业标准程序复习指南:架构、模块化与易错点

Sicar-Training-show-V16工业标准程序复习指南:架构、模块化与易错点

简介:Sicar-Training-show-V16程序是一套面向工业自动化领域学习者的Sicar标准程序训练示例包,适合正在接触西门子PLC编程、PROFINET通信及分布式IO组态的工程师与院校学生,用于理解标准化程序框架与设备描述文件的组织方式。压缩包为rar格式…

2026/10/21 2:06:44 阅读更多 →
Gitnuro 安装教程:3 条路线,从安装到验证只要 5 分钟

Gitnuro 安装教程:3 条路线,从安装到验证只要 5 分钟

Gitnuro 安装教程:3 条路线,从安装到验证只要 5 分钟 【免费下载链接】Gitnuro A FOSS Git multiplatform client for newbies and pros 项目地址: https://gitcode.com/GitHub_Trending/gi/Gitnuro Gitnuro 是一款基于 Compose 和 JGit 的跨平台…

2026/10/21 2:06:44 阅读更多 →
GriddyCode 代码编辑器:3 步写进第一个文件,用 Lua 换主题

GriddyCode 代码编辑器:3 步写进第一个文件,用 Lua 换主题

GriddyCode 代码编辑器:3 步写进第一个文件,用 Lua 换主题 【免费下载链接】griddycode A code editor made with Godot. Code has never been more lit! 项目地址: https://gitcode.com/GitHub_Trending/gr/griddycode GriddyCode 是一个基于 Go…

2026/10/21 2:06:44 阅读更多 →
具身智能机器人验证环境搭建实战:从感知到控制全流程

具身智能机器人验证环境搭建实战:从感知到控制全流程

想搞清楚具身智能到底是怎么从“听懂人话”走到“真的动手干活”的,最好的办法不是看论文,而是亲手搭一套能跑起来的系统。这篇文章聊聊我在实际项目中从零搭建一套具身智能机器人验证环境的全过程,包括硬件选型、感知标定、策略训练、底层控…

2026/10/21 2:06:43 阅读更多 →
Kindle 电子书下载助手:从安装到批量下载的完整指南

Kindle 电子书下载助手:从安装到批量下载的完整指南

Kindle 电子书下载助手:从安装到批量下载的完整指南 【免费下载链接】Kindle_download_helper Download all your kindle books script. 项目地址: https://gitcode.com/GitHub_Trending/ki/Kindle_download_helper 亚马逊商店买的电子书只能存在对方服务器上…

2026/10/21 2:06:43 阅读更多 →
Stable Video Infinity 部署指南:5 步生成无限长视频

Stable Video Infinity 部署指南:5 步生成无限长视频

Stable Video Infinity 部署指南:5 步生成无限长视频 【免费下载链接】Stable-Video-Infinity [ICLR 26 Oral] Stable Video Infinity: Infinite-Length Video Generation with Error Recycling 项目地址: https://gitcode.com/GitHub_Trending/st/Stable-Video-Infinity …

2026/10/21 2:05:43 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →