如何 YAML 保存 numpy 数组

Posted

技术标签:

【中文标题】如何 YAML 保存 numpy 数组【英文标题】:How to YAML save numpy array 【发布时间】:2014-02-09 11:47:15 【问题描述】:

嗨,有没有办法保存 numpy 二维数组,然后从文件中安全地加载它? 我有这个数组:

     matrix = np.random.randint(2, size=(self.row,self.col))

但我无法保存它

【问题讨论】:

np.save 不工作? 【参考方案1】:

最明显的方法是安装pyyaml 模块(Google App Engine 使用该模块),并将矩阵保存为列表。

import numpy as np
import yaml
matrix = np.random.randint(2, size=(10,7))
with open('stack21658676.yaml', 'w') as f:
    yaml.dump(matrix.tolist(), f)

with open('stack21658676.yaml') as f:
    loaded = yaml.load(f)
loaded = np.array(loaded)
print loaded

虽然我不得不问你为什么想要 YAML 而不是“本机”numpy 保存?

【讨论】:

【参考方案2】:
In [24]: matrix = np.random.randint(2, size=(3,4))

In [25]: np.save('test', matrix)

In [26]: a = np.load('test.npy')

In [27]: matrix
Out[27]:
array([[0, 1, 1, 1],
       [1, 0, 1, 1],
       [1, 1, 1, 1]])

In [28]: a
Out[28]:
array([[0, 1, 1, 1],
       [1, 0, 1, 1],
       [1, 1, 1, 1]])

【讨论】:

以上是关于如何 YAML 保存 numpy 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 matplotlib/numpy 将数组保存为灰度图像?

如何保存 numpy 数组以便以后可以适当地加载它们?

如何在python中将列表保存为numpy数组?

如何使用 numpy.savez 将带有子数组的数组保存到单独的 .npy 文件中

如何将不同大小的numpy数组列表保存到磁盘?

将熊猫数据框保存到csv时如何保留numpy数组