2 回答
TA贡献1789条经验 获得超8个赞
1) .npz 是一种 numpy 特定格式。Go 本身不太可能在标准库中支持这种格式。我也不知道今天存在任何第三方库,并且(10 秒)搜索没有弹出。如果您特别需要 npz,请使用 python + numpy。
如果你只是想从 Go 中得到类似的东西,你可以使用任何格式。二进制格式包括golang binary和gob。根据您要执行的操作,您甚至可以使用非二进制格式(如json)并自行压缩。
2) Go 没有内置矩阵。你找到的那个库是第三方的,它只处理float64
s.
但是,如果您只需要以矩阵(n 维)格式存储字符串,则可以使用 n 维切片。对于2维它看起来像这样:var myStringMatrix [][]string
。
TA贡献1805条经验 获得超9个赞
npz
文件是zip
档案。归档和压缩(可选)由 Pythonzip
模块处理。在npz
包含一个npy
文件的每个变量保存。任何基于操作系统的归档工具都可以解压缩和提取组件.npy
文件。
所以剩下的问题是 - 你能模拟npy
格式吗?这不是微不足道的,但也不难。它由一个包含形状、步幅、dtype 和顺序信息的头块组成,后跟一个数据块,实际上是数组数据缓冲区的字节图像。
因此缓冲区信息和数据与numpy
数组内容密切相关。如果变量不是普通数组,则save
使用 Python pickle 机制。
首先,我建议使用该csv
格式。它不是二进制的,也不快,但每个人和他的兄弟都可以生成并阅读它。我们不断收到有关使用np.loadtxt
或读取此类文件的问题np.genfromtxt
。查看代码np.savetxt
以了解如何numpy
生成此类文件。这很简单。
另一个通用选择是使用tolist
数组格式的JSON 。之所以想到这一点,GO
是因为它是 Google 自己开发的用于 Web 应用程序的 Python 替代品。JSON 是一种基于简化 Javascript 语法的跨语言格式。
- 2 回答
- 0 关注
- 288 浏览
添加回答
举报