2.2.3.4 数组接口协议

  • 多维度buffers
  • 存在数据类型信息
  • Numpy-特定方法;慢慢的废弃(不过不会消失)
  • 然而,没有整合在Python中

也可以看一下:文档:http://docs.scipy.org/doc/numpy/reference/arrays.interface.html

In [8]:

  1. x = np.array([[1, 2], [3, 4]])
  2. x.__array_interface__

Out[8]:

  1. {'data': (4298825184, False),
  2. 'descr': [('', '<i8')],
  3. 'shape': (2, 2),
  4. 'strides': None,
  5. 'typestr': '<i8',
  6. 'version': 3}

In [11]:

  1. # import Image
  2. from PIL import Image
  3. img = Image.open('data/test.png')
  4. img.__array_interface__

Out[11]:

  1. {'data': '\xfe\x00\x00\xff\xfe\x00\x00...\xff\xfe\x00\x00\xff',
  2. 'shape': (200, 200, 4),
  3. 'typestr': '|u1'}

In [12]:

  1. x = np.asarray(img)
  2. x.shape

Out[12]:

  1. (200, 200, 4)

In [13]:

  1. x.dtype

Out[13]:

  1. dtype('uint8')

笔记: 一个对C更友好的数组接口变体也被定义出来了。