news 2026/6/15 20:58:09

什么是Numpy?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是Numpy?

What|NumPy 到底是什么?

⚙️ Python 的「数值计算底层引擎」:一个开源库,提供高效 n 维数组对象 ndarray + 广播机制 + 向量化数学函数;pandas、scipy、scikit-learn、PyTorch 都把它当底座。

量化圈名言:「没有 NumPy,Python 就是慢脚本;有了 NumPy,Python 变成向量化高铁」。

Who|天天在 import numpy?

1️⃣ 量化研究员:回测里 10 年 3000 只股票日收益 → 一行returns.mean(axis=0)秒算平均收益。

2️⃣ 数据工程师:CSV →np.loadtxt→ 矩阵,一步完成。

3️⃣ 机器学习工程师:把图片转成np.uint8数组喂给 CNN。

4️⃣ 高校学生:线性代数作业np.linalg.eig算特征值。

5️⃣ 散户极客:用numpy.random做蒙特卡洛模拟资产价格路径。

Where|在哪用?

🖥️ 本地:Anaconda 自带,无需额外安装。

🌐 云端:Colab、Kaggle 内核已预装 NumPy + MKL 加速。

📱 嵌入式:MicroPython 裁剪版也能import numpy

🖱️ 在线:GitHub Codespaces 终端python -c "import numpy; print(numpy.__version__)"

When|什么时候必须用?

⚡ 循环太慢:纯 Python for 算 100 万条收益均值要 1 秒 → NumPy 向量化 10 ms。

⚡ 维度广播:不同 shape 的矩阵相加,不用手写双重循环。

⚡ 线性代数:求协方差、特征值、矩阵乘法,调用np.dot/np.linalg一步到位。

⚡ 随机模拟:几何布朗运动、Bootstrap 重采样,用np.random家族即可。

Why|用 NumPy 而不用纯 Python?

  1. ✅ C 级速度:底层 OpenBLAS/MKL 优化,向量化比 for 循环快 10–100×。
  2. ✅ 内存省:ndarray 连续存储,同样 float64 数组比 list 省 40% 内存。
  3. ✅ 广播语法:写a + b就能自动对齐维度,代码短、可读性高。
  4. ✅ 生态核心:pandas Series/DataFrame 底层就是 ndarray,不会 NumPy 就看不懂源码。

How|60 秒最小示例(向量化)

先安装Numpy:

pipinstallnumpy

导入:

importnumpyasnp

创建 252 天、3000 只股票的随机日收益矩阵:

# ① 创建 252 天、3000 只股票的随机日收益矩阵# 均值 0.05%,日波动 2.2%rets=np.random.normal(0.0005,0.022,size=(252,3000))rets

年化收益,按股票维度(axis=0):

# ② 年化收益,按股票维度(axis=0)annual_ret=rets.mean(axis=0)*252annual_ret

波动,按股票维度(axis=0):

# 波动,按股票维度(axis=0)annual_vol=rets.std(axis=0)*np.sqrt(252)annual_vol

夏普(无风险 2%):

# ③ 夏普(无风险 2%)sharpe=(annual_ret-0.02)/annual_volprint('平均夏普:',sharpe.mean().round(2))# 输出 ≈ 0.73

协方差矩阵(3000×3000):’

# ④ 协方差矩阵(3000×3000)cov=np.cov(rets,rowvar=False)# rowvar=False 表示每列是一只股票print('协方差矩阵形状:',cov.shape)# (3000, 3000)

完整代码:

importnumpyasnp# ① 创建 252 天、3000 只股票的随机日收益矩阵rets=np.random.normal(0.0005,0.022,size=(252,3000))# 均值 0.05%,日波动 2.2%# ② 年化收益 & 波动,按股票维度(axis=0)annual_ret=rets.mean(axis=0)*252annual_vol=rets.std(axis=0)*np.sqrt(252)# ③ 夏普(无风险 2%)sharpe=(annual_ret-0.02)/annual_volprint('平均夏普:',sharpe.mean().round(2))# 输出 ≈ 0.73# ④ 协方差矩阵(3000×3000)cov=np.cov(rets,rowvar=False)# rowvar=False 表示每列是一只股票print('协方差矩阵形状:',cov.shape)# (3000, 3000)

运行完:

  • 252 万数据点,全程向量化,本地笔记本 < 200 ms 完成。
  • 一行np.cov直接拿到马科维茨输入矩阵。

一句话总结:NumPy = Python 的「向量化高铁」:ndarray 让循环进 C 语言,速度×100,内存省,所有量化/ML 库都站在这块基石上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:57:07

AI自动排程革命(从混乱到精准:Open-AutoGLM预约系统实战案例)

第一章&#xff1a;AI自动排程革命&#xff1a;从混乱到精准的变革在传统生产与项目管理中&#xff0c;资源调度长期依赖人工经验&#xff0c;面对复杂任务网络时极易陷入效率瓶颈。AI驱动的自动排程系统正以前所未有的精度和速度重塑这一领域&#xff0c;将原本碎片化、易出错…

作者头像 李华
网站建设 2026/6/15 13:58:45

Excalidraw图层管理技巧:复杂图形组织策略

Excalidraw图层管理技巧&#xff1a;复杂图形组织策略 在技术团队的日常协作中&#xff0c;一张清晰的架构图往往胜过千言万语。无论是远程讨论微服务部署&#xff0c;还是评审产品原型流程&#xff0c;Excalidraw 已成为许多工程师首选的可视化工具——它手绘风格自然、操作轻…

作者头像 李华
网站建设 2026/6/15 18:22:25

C#如何结合开源库实现.NET Core百万文件上传的优化方案?

.NET程序员的血泪奋斗史&#xff1a;从0到1搞定大文件上传&#xff08;含IE8兼容&#xff09; 咱福建.NET仔最近接了个外包活&#xff0c;客户是做政府资料管理的&#xff0c;需求就一句话&#xff1a;“搞个大文件上传功能&#xff0c;20G文件随便传&#xff0c;文件夹要留层…

作者头像 李华
网站建设 2026/6/15 15:55:00

前端如何配合.NET Core实现大文件上传的进度条动态显示?

【大三学生的暴富&#xff08;毕业&#xff09;设计日记】 各位前端战友们好&#xff01;我是福州那个天天被毕业设计逼得快秃头的通讯专业大三学生小王&#xff0c;最近为了搞定一个“文件管理系统”的毕业设计&#xff0c;被导师要求实现一个支持10G文件上传、加密传输、断点…

作者头像 李华
网站建设 2026/6/15 14:58:53

.NET Core如何支持多平台大文件分片上传的兼容性配置?

大文件传输系统技术方案设计与实现&#xff08;第一人称专业报告&#xff09; 一、项目背景与需求分析 作为广西某软件公司前端工程师&#xff0c;近期负责一个关键项目的大文件传输模块开发。该项目需求具有以下特点&#xff1a; 支持20GB级大文件传输&#xff08;上传/下载…

作者头像 李华
网站建设 2026/6/15 16:04:36

【限时掌握】Open-AutoGLM新手引导配置:3天内完成项目部署的秘密

第一章&#xff1a;Open-AutoGLM 新手引导配置欢迎使用 Open-AutoGLM&#xff0c;一个面向自动化自然语言任务的开源大语言模型框架。本章将引导你完成基础环境配置与服务初始化&#xff0c;确保系统可正常运行。环境准备 在开始前&#xff0c;请确认本地已安装以下依赖&#x…

作者头像 李华