如何 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 将数组保存为灰度图像?