【发布时间】:2023-02-20 19:11:49
【问题描述】:
当使用 PyYAML 保护 YAML 文件中的 NumPy 数组时,它默认添加大量元数据,以便在加载文件时可以恢复实际数组。例子:
import numpy as np
import yaml
a = np.array([1, 2, 3])
print(yaml.dump(a))
结果是
!!python/object/apply:numpy.core.multiarray._reconstruct
args:
- !!python/name:numpy.ndarray ''
- !!python/tuple
- 0
- !!binary |
Yg==
state: !!python/tuple
- 1
- !!python/tuple
- 3
- !!python/object/apply:numpy.dtype
args:
- i8
- false
- true
state: !!python/tuple
- 3
- <
- null
- null
- null
- -1
- -1
- 0
- false
- !!binary |
AQAAAAAAAAACAAAAAAAAAAMAAAAAAAAA
但是,我不关心恢复确切的 NumPy 数组,而是需要生成的 YAML 与其他应用程序兼容。因此,我希望将数组作为正常序列转储,即像这样:
- 1
- 2
- 3
有没有办法告诉 PyYAML 像标准列表一样处理 NumPy 数组,而不必手动转换每个数组?
【问题讨论】: