在Python中,我想以纯文本格式存储numpy数组,矩阵以及后来的其他对象。
我的想法是使用ConfigParser并定义解析器array2string
,matrix2string
,string2array
和string2matrix
(numpy.array2string
和matrix2string
可以基于此实现,但我找不到相反的功能)。然后写作如下:
config.set('calibration', 'center', array2string(center))
config.set('calibration', 'trans_matrix', matrix2string(trans_matrix))
并且读起来像:
center = string2array(config.get('calibration', 'center'))
trans_matrix = string2matrix(config.get('calibration', 'trans_matrix'))
编写和读取numpy对象的最佳方法是什么?
答案 0 :(得分:0)
这篇文章中的答案提供了一个很好的功能,效果很好:
how to read numpy 2D array from string?
Luhn's algorithm / (mod 10)
其中config.ini文件是:
import configparser
import re
import ast
import numpy as np
def str2array(s):
# Remove space after [
s=re.sub('\[ +', '[', s.strip())
# Replace commas and spaces
s=re.sub('[,\s]+', ', ', s)
return np.array(ast.literal_eval(s))
config = configparser.ConfigParser()
config.read("config.ini")
var_a = config.get("myvars", "var_a")
var_b = config.get("myvars", "var_b")
var_c = config.get("myvars", "var_c")
var_d=config.get("myvars", "var_d")
var_e=config.get("myvars", "var_e")
q=str2array(var_d)
r=str2array(var_e)