You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NumSharp读取含不同数据类型的npz文件?三种尝试均遇阻

解决NumSharp读取含不同数据类型NPZ文件的问题

给定的NPZ文件包含两个NPY数组:

  • faces.npy:float64类型,形状为12×15
  • neighbors.npy:int64类型,形状为12×3

之前的尝试因指定单一泛型类型导致无法匹配异类型数组,重复加载又触发文件占用问题,以下是正确的读取方案:

直接加载整个NPZ文件为NPZFile对象,再分别取出数组并转换为对应数据类型,只需打开一次文件即可解决所有问题:

// 加载完整NPZ文件,无需指定单一泛型
using var npz = np.Load_Npz(@"D:\dnns\ifcnet\test\wall\IFCWALL.43.npz");

// 将faces数组转为double[,](对应float64)
var faces = npz["faces.npy"].ToArray<double>();

// 将neighbors数组转为long[,](对应int64,C#中Int64等价于long)
var neighbors = npz["neighbors.npy"].ToArray<long>();

关键说明

  1. 不指定泛型的np.Load_Npz()会返回包含所有数组的NPZFile实例,适配不同类型的数组。
  2. 通过ToArray<T>()将NumSharp数组转换为C#原生多维数组,类型对应关系:float64→double,int64→long/Int64。
  3. 使用using语句自动释放文件流,彻底避免文件被占用的问题。

另外,第二次尝试中的In[,]属于笔误,即使修正为Int64[,],也会因类型不匹配导致faces为null——浮点类型数组无法直接转为整数类型数组。

内容的提问来源于stack exchange,提问作者Flash2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:50:35