数组与字符串的转换

tostring 方法

In [1]:
import numpy as np
In [2]:
a = np.array([[1,2],
           [3,4]], 
          dtype = np.uint8)

转化为字符串:

In [3]:
a.tostring()
Out[3]:
'\x01\x02\x03\x04'

我们可以使用不同的顺序来转换字符串:

In [4]:
a.tostring(order='F')
Out[4]:
'\x01\x03\x02\x04'

这里使用了Fortran的格式,按照列来读数据。

fromstring 函数

可以使用 fromstring 函数从字符串中读出数据,不过要指定类型:

In [5]:
s = a.tostring()
a = np.fromstring(s, 
                  dtype=np.uint8)
a
Out[5]:
array([1, 2, 3, 4], dtype=uint8)

此时,返回的数组是一维的,需要重新设定维度:

In [6]:
a.shape = 2,2
a
Out[6]:
array([[1, 2],
       [3, 4]], dtype=uint8)

对于文本文件,推荐使用

  • loadtxt
  • genfromtxt
  • savetxt

对于二进制文本文件,推荐使用

  • save
  • load
  • savez