news 2026/9/12 0:30:40

新手指南:5分钟安装npy-matlab,让MATLAB直接读写NumPy .npy文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新手指南:5分钟安装npy-matlab,让MATLAB直接读写NumPy .npy文件

新手指南:5分钟安装npy-matlab,让MATLAB直接读写NumPy .npy文件

【免费下载链接】npy-matlabExperimental code to read/write NumPy .NPY files in MATLAB项目地址: https://gitcode.com/gh_mirrors/np/npy-matlab

📌npy-matlab是一个开源的 MATLAB 工具包,让你无需任何 Python 环境,就能在 MATLAB 中直接读取和写入 NumPy 的 .npy 格式文件。对于需要在 MATLAB 与 Python 之间频繁交换数据的新手来说,它是最省事的桥梁方案。

一、为什么需要 npy-matlab?

很多新手都会遇到同一个问题:Python 端(PyTorch、Pandas、OpenCV 等)习惯用.npy格式保存数组,而 MATLAB 原生只能读.mat文件。传统做法是装一个 Python 环境来回转换,繁琐又占资源。

npy-matlab 的思路很简单:直接用 MATLAB 原生函数解析 NPY 文件头和数据块,实现零依赖互操作。✅

它由以下几部分组成:

文件作用
npy-matlab/readNPY.m读取 .npy 文件为 MATLAB 数组
npy-matlab/writeNPY.m把 MATLAB 数组写出为 .npy 文件
npy-matlab/readNPYheader.m解析文件头(形状、数据类型、字节序等)
npy-matlab/constructNPYheader.m按 NPY 规范构造文件头
npy-matlab/datToNPY.m把裸二进制 .dat 文件加上 NPY 头转为 .npy

二、最快安装方法:两步搞定 🚀

npy-matlab 没有任何第三方依赖,安装 = 克隆仓库 + 添加搜索路径,5 分钟内可以完成。

第 1 步:克隆项目

在终端执行(仓库地址):

git clone https://gitcode.com/gh_mirrors/np/npy-matlab

第 2 步:加入 MATLAB 搜索路径

启动 MATLAB,把仓库内的npy-matlab/目录加入路径并保存:

addpath('你的路径/npy-matlab/npy-matlab'); savepath

💡 提示:addpath只添加内层的npy-matlab/子目录即可(那里存放全部 .m 脚本);savepath让设置永久生效,重启 MATLAB 无需重复操作。

三、核心用法:readNPY 与 writeNPY 怎么用?

安装完成后,整个工作流只需要两行函数调用。

写入 .npy 文件

a = rand(5,4,3); % 任意 MATLAB 数组 writeNPY(a, 'a.npy'); % 写出为标准 NPY 文件

读取 .npy 文件

b = readNPY('a.npy'); % 读回数组,与 a 完全一致

readNPY内部会自动解析文件头(调用readNPYheader.m),按数据类型和维度正确还原数组,还支持大端/小端字节序与 C-order/Fortran-order 两种存储顺序的维度转换——这点比很多手写脚本要可靠。

支持的数据类型

类别支持的类型
整型int8/int16/int32/int64uint8/uint16/uint32/uint64
浮点single(float32)、double(float64)
逻辑logical(对应 NPY 的b1

⚠️注意事项:当前项目定位为实验性代码,存在以下限制:

  • 只能读取上述固定数据类型的 N 维数组(不支持字符串、对象数组等)
  • 写出时固定为小端序 + Fortran 列主序、NPY 1.0 版本
  • 形状按 MATLAB 约定输出,例如(10, 1)而非(10,)

四、进阶技巧:解析文件头与内存映射 🧠

1. 只解析文件头(不加载数据)

当你只需要知道数组形状和类型时,用readNPYheader.m最轻量:

[shape, dtype, fortranOrder, littleEndian, headerLen, version] = readNPYheader('data.npy');

2. 超大文件:用 memmapfile 零拷贝读取

仓库提供了一个经典案例examples/exampleMemmap.m:对 Python 默认保存(C-order)的大文件,用memmapfile做内存映射、再反转维度即可按需读取,避免一次性载入内存:

f = memmapfile(filename, 'Format', {dataType, shape(end:-1:1), 'd'}, 'Offset', totalHeaderLength);

这对处理图像、体素数据等大体积 .npy 文件非常实用。

3. 已有 .dat 裸数据?直接"套壳"成 .npy

datToNPY.m可以在不读入数据的前提下,为二进制文件拼接一个合法的 NPY 头,快速把.dat转成.npy,适合大文件场景。

五、如何验证安装成功:运行自带测试 🧪

项目自带三层测试,建议安装后跑一遍确认环境正常:

  • tests/test_readNPY.m—— MATLAB 端读写测试脚本
  • tests/npy.ipynb—— Python 端对照测试(验证读出的数据与 Python 写入一致)
  • tests/test_npy_roundtrip.py—— 自动化往返测试(roundtrip)
  • tests/data/目录 —— 内置 chelsea 图像与正弦波数据(float32/64、int8~64、uint8~64 全类型覆盖),可直接用作你的测试素材

最简验证方式:

a = rand(5,4,3); writeNPY(a, 'a.npy'); b = readNPY('a.npy'); disp(sum(a(:)==b(:))); % 输出 60 即表示读写完全一致

六、总结:适合谁用?

场景推荐度
MATLAB ↔ Python 数据交换(数值数组)⭐⭐⭐⭐⭐
无 Python 环境的机器上解析 .npy⭐⭐⭐⭐⭐
超大 .npy 文件(配合 memmapfile)⭐⭐⭐⭐
字符串/对象等复杂 NPY 数据❌ 暂不支持

npy-matlab 用不到 200 行纯 MATLAB 代码,解决了"MATLAB 读不了 .npy"这个高频痛点。现在你就可以按上面两步完成安装,5 分钟后让两个生态的数据自由流通!

【免费下载链接】npy-matlabExperimental code to read/write NumPy .NPY files in MATLAB项目地址: https://gitcode.com/gh_mirrors/np/npy-matlab

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

RAKG:用RAG“倒过来“建图,95.91%准确率碾压传统KGC三大痛点!

一、背景:传统 KGC 的三座大山 随着大模型(LLM)能力的不断增强,知识图谱(KG) 作为结构化知识的核心载体,重新成为研究热点。尤其是在 GraphRAG、Pike-RAG 等图谱增强生成框架的推动下&#xff…

作者头像 李华
网站建设 2026/8/30 8:31:30

企业级RAG实施指南,企业知识库落地一定不要错过,长文建议收藏

前言 RAG系统配置最佳实践与企业选型指南,企业知识库落地避坑宝典企业级RAG系统配置与框架选型:从需求到实施RAG框架在企业中的深度应用与选型策略企业如何成功实施Cherry Studio、AnythingLLM和RAGFlow?一份指南明白企业级RAG实施指南 &…

作者头像 李华
网站建设 2026/8/30 5:05:36

中报季车企密集加码机器人,研发与竞争壁垒下谁能突出重围?

今年中报季,车企掀起加码机器人热潮,小鹏机器人业务首轮融资超9亿美元,蔚来、零跑也有新动作,传统车企奇瑞旗下墨甲机器人筹备IPO,但车企“造人”面临诸多挑战。车企“造人”热潮涌动中报季成车企加码机器人密集发声期…

作者头像 李华
网站建设 2026/8/30 6:39:54

MCU离线人脸识别实战:从硬件选型到算法轻量化全解析

做智能门锁项目的时候,我第一次认真考虑“把离线人脸识别跑在一颗MCU上”这个方向。当时的直觉和大多数人一样:主频只有几百兆赫兹、内部SRAM按KB算、还要外挂SDRAM才能放图像缓冲,这种资源条件怎么跑得动人脸识别?但回过头看&…

作者头像 李华