编写和阅读numpy对象是纯文本

时间:2015-06-07 09:06:47

标签: python python-2.7 numpy

在Python中,我想以纯文本格式存储numpy数组,矩阵以及后来的其他对象。

我的想法是使用ConfigParser并定义解析器array2stringmatrix2stringstring2arraystring2matrixnumpy.array2stringmatrix2string可以基于此实现,但我找不到相反的功能)。然后写作如下:

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对象的最佳方法是什么?

1 个答案:

答案 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)