如何将numpy数组保存为YAML格式

4

你好,有没有一种方法可以将numpy 2D数组保存到文件中,并安全地从文件中加载它? 我有这个数组:

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

但是我无法保存它。

np.save不起作用? - M4rtini
2个回答

18
最明显的方法是安装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保存格式?


目前加载yaml数据需要额外的参数。使用以下方式:yaml.load(f, Loader=yaml.Loader) - Moniruzzaman Akash

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]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接