2024-04-26 05:04:15 发布
网友
在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')
{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中,从该字符串恢复数组:
np.loadtxt
StringIO
a.tostring()返回的字符串不记录a的确切形状,就像它记录项目的类型一样(这里,float32)。fromstring总是返回一个一维数组参见http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromstring.html处的文档,如果需要,您必须适当地重塑数组:
a.tostring()
a
float32
fromstring
>>> c.reshape([2,2]) array([[ 1., 2.], [ 3., 4.]], dtype=float32)
至于如何保留[2,2]形状和float32类型,以便能够同时恢复它们,您需要做出自己的安排!-)在
[2,2]
{a2的另一种方法是保存^的数组}。这些函数需要文件作为输入,因此我们将使用^{} 生成一个类似于文件的字符串对象:
我们可以使用
^{pr2}$np.loadtxt
,将其包装在另一个StringIO
中,从该字符串恢复数组:a.tostring()
返回的字符串不记录a
的确切形状,就像它记录项目的类型一样(这里,float32
)。fromstring
总是返回一个一维数组参见http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromstring.html处的文档,如果需要,您必须适当地重塑数组:至于如何保留
[2,2]
形状和float32
类型,以便能够同时恢复它们,您需要做出自己的安排!-)在相关问题 更多 >
编程相关推荐