数组与字符串的转换

tostring 方法

In [1]:

  1. import numpy as np

In [2]:

  1. a = np.array([[1,2],
  2. [3,4]],
  3. dtype = np.uint8)

转化为字符串:

In [3]:

  1. a.tostring()

Out[3]:

  1. '\x01\x02\x03\x04'

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

In [4]:

  1. a.tostring(order='F')

Out[4]:

  1. '\x01\x03\x02\x04'

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

fromstring 函数

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

In [5]:

  1. s = a.tostring()
  2. a = np.fromstring(s,
  3. dtype=np.uint8)
  4. a

Out[5]:

  1. array([1, 2, 3, 4], dtype=uint8)

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

In [6]:

  1. a.shape = 2,2
  2. a

Out[6]:

  1. array([[1, 2],
  2. [3, 4]], dtype=uint8)

对于文本文件,推荐使用

  • loadtxt
  • genfromtxt
  • savetxt 对于二进制文本文件,推荐使用

  • save

  • load
  • savez

原文: https://nbviewer.jupyter.org/github/lijin-THU/notes-python/blob/master/03-numpy/03.09-data-to-&-from-string.ipynb