我想将numpy.array
数据保存到 XML 文件中,然后再次读取。以下是我的代码:
数组到字符串
arr=numpy.zeros((20))
s = str(arr)
但是这种方式会在字符串中生成回车键和 '[',']'字符。
字符串到数组
我应该首先删除回车键和'[',']'。然后使用numpy.fromstring
但我认为这不是一个好方法。这不能在二维数组上工作
您正在混合两种不同的“to string”方式:
a = numpy.zeros((20))
您可以在删除换行符并[]
从中删除换行符后,放入str(a)
一个新的构造函数并使用返回的值numpy.matrix()
进行初始化:numpy.array()
b = numpy.array(numpy.matrix(" ".join(str(a).split()).strip('[]')))
或者你可以numpy.array.tostring()
结合numpy.fromstring()
:
c = numpy.fromstring(a.tostring())
但是像你试图做的混合和匹配是行不通的。
您可以轻松地将 numpy 数组转换为常规 python 列表,反之亦然。然后,您可以将列表的字符串表示形式存储到文件中,从文件中加载它,将其转换回列表并转换为 numpy 数组。
>>> list(numpy.zeros(4))
[0.0, 0.0, 0.0, 0.0]
>>> numpy.array([0.0, 0.0, 0.0, 0.0])
array([ 0., 0., 0., 0.])
使用该map
函数,这也适用于二维数组。
>>> map(list, numpy.zeros((2, 3)))
[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]
>>> numpy.array([[0.0, 0.0], [0.0, 0.0]])
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
但是,如果数组真的很大,最好还是使用 XML 文件来存储它numpy.save
,numpy.load
并且只使用 XML 文件来存储该文件的路径以及注释。