当前位置: 首页 > news >正文

什么是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 库都站在这块基石上。

http://www.jsqmd.com/news/119156/

相关文章:

  • 为什么90%的KTV都在接入Open-AutoGLM?真相令人震惊
  • 我发现多尺度因果图漏不确定性,后来补鲁棒优化才稳住治疗策略
  • 【Open-AutoGLM理发预约系统揭秘】:如何用AI智能调度提升门店效率300%
  • 人工智能之数字生命--从点云 → 自动子存在生成4
  • 好写作AI:你的论文为什么读起来像AI写的?
  • 10.10
  • 【限时稀缺教程】:用Open-AutoGLM实现毫秒级电影票抢购,成功率提升90%
  • AI自动排程革命(从混乱到精准:Open-AutoGLM预约系统实战案例)
  • Open-AutoGLM美甲服务上线背后:9个关键技术决策让系统稳定运行
  • 搞懂大数据CAP定理,为大数据项目保驾护航
  • 人工智能之数字生命--人类是如何“自然地”把人体划分为头、手臂、躯干、腿等部分的?
  • 好写作AI:别让分析私有数据,成为你论文的“隐形牢笼”
  • 当答辩PPT,成了扼杀学术表达的最后一道屏障
  • 宠物门店效率提升300%的秘密(Open-AutoGLM自动化预订实战案例)
  • 人工智能之数字生命--从点云 → 自动子存在生成1
  • Open-AutoGLM如何重塑KTV预订体验:3大核心技术亮点全曝光
  • 重塑文字指纹:当降重不再是“同义词替换”的文字游戏
  • 第40次CCFCSP认证邮寄
  • Excalidraw API接口调用示例:自动化绘图集成方案
  • Open-AutoGLM家政系统实战:3步实现智能派单与订单自动化处理
  • 人工智能之数字生命--从点云 → 自动子存在生成2
  • 仅需3步!Open-AutoGLM快速部署实现文档自动生成(附完整配置模板)
  • Open-AutoGLM 电影场次查询实战指南(从零构建高精度查询系统)
  • Open-AutoGLM数据安全最后防线,如何构建不可绕过的恢复屏障?
  • 人工智能之数字生命--从点云 → 自动子存在生成3-瓶颈/关节”检测的简化算法
  • Open-AutoGLM健身卡预约实战指南(从配置到上线全流程曝光)
  • .NET Core如何支持多平台大文件分片上传的兼容性配置?
  • Free42 HP-42S 科学可编程计算器 v3.3.9 绿色版
  • Open-AutoGLM电影票购买实战指南(99%人不知道的隐藏技巧)
  • 电脑分区详细指南:步骤、要点与深度解析