从字符串重建二维数组

2024-04-26 05:04:15 发布

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

在Python中,我有一个从2D数组(a)转换而来的字符串(在下面的例子中是b)。如何从字符串重建二维数组?在

我想我用错了函数”从字符串.numpy“因为c这是一个1D数组。在

import numpy
a = numpy.array([[1,2],[3,4]], dtype='float32')
b = a.tostring()
c = numpy.fromstring(b, dtype='float32')

Tags: 函数字符串importnumpy数组array例子dtype
2条回答

{a2的另一种方法是保存^的数组}。这些函数需要文件作为输入,因此我们将使用^{}生成一个类似于文件的字符串对象:

>>> import numpy
>>> from StringIO import StringIO
>>> a = numpy.array([[1,2],[3,4]], dtype='float32')
>>> io = StringIO()
>>> numpy.savetxt(io, a)
>>> s = io.getvalue()
>>> s
'1.000000000000000000e+00 2.000000000000000000e+00\n3.000000000000000000e+00 4.000000000000000000e+00\n'

我们可以使用np.loadtxt,将其包装在另一个StringIO中,从该字符串恢复数组:

^{pr2}$

a.tostring()返回的字符串不记录a的确切形状,就像它记录项目的类型一样(这里,float32)。fromstring总是返回一个一维数组参见http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromstring.html处的文档,如果需要,您必须适当地重塑数组:

>>> c.reshape([2,2])
array([[ 1.,  2.],
       [ 3.,  4.]], dtype=float32)

至于如何保留[2,2]形状和float32类型,以便能够同时恢复它们,您需要做出自己的安排!-)在

相关问题 更多 >