我给出了一些文件,它们都具有相同的大小。我要做的是将这些文件加载到Numo::Narray中,每个文件都需要位于该数组的不同行中。在创建 Narray 之前,文件的数量及其大小是已知的。我现在使用的是 8 位无符号整数。
示例:对于 5 个大小为 512 的文件,我需要形状为 [5, 512] 的多维数组。数据应该存储在伽罗瓦域中。这是至关重要的,因为这个矩阵将用于数学运算。我现在用来存储数据的是二进制数据转换的 8 位无符号整数数组。遗憾的是,ruby 的“read”和“unpack('*C')”方法的性能还不够高。
我已经用旧版本的NArray做到了这一点,但是性能不够好,因为我必须首先创建用零填充的固定大小的 NMatrix,将数据加载到普通的 Ruby 数组并替换 NMatrix 的给定行。这个新库非常大,我找不到插入行或动态添加数据到行的方法。我是否必须声明固定的 NArray 或者可能有一种方法可以通过将数据直接从 file.read 方法加载到 Narray 来动态地做到这一点,这样我就不必创建辅助 ruby 数组?
由于我对高性能感兴趣,因此将不胜感激最佳解决方案。