pythonnumpy中字符串与数组的转换

2021-03-01 03:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将numpy.array数据保存到XML文件中,然后再次读取它。以下是我的代码:

数组到字符串

arr=numpy.zeros((20))
s = str(arr) 

但这种方式会在字符串中生成enter key和'[',']'字符。在

字符串到数组
我应该先删除enter键和'[',']'。然后使用numpy.fromstring

但我不认为这是个好办法。这在二维数组上不起作用

3条回答
网友
1楼 ·

除了使用save and load将ndarray转储到.npy文件并在xml中记录该文件的详细信息之外,还可以使用Nils Werner指定的数据创建一个字符串。在

注意:您可能想查看HDF或{a3}(使用hdf)。在

网友
2楼 ·

你混合了两种不同的“to string”方法:

a = numpy.zeros((20))

在从中剥离新行和[]之后,可以将str(a)放入新的numpy.matrix()构造函数中,并使用返回的值初始化{}:

^{pr2}$

或者您可以将numpy.array.tostring()numpy.fromstring()组合:

c = numpy.fromstring(a.tostring())

但是像你尝试的那样混合和匹配是行不通的。在

网友
3楼 ·

您可以轻松地将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函数,这也适用于2D数组。在

^{pr2}$

但是,如果数组确实很大,那么最好使用numpy.savenumpy.load来存储它,并且只使用XML文件来存储该文件的路径以及注释。在

相关问题