关于Numpy的结构化数组

时间:2017-03-17 09:20:34

标签: python numpy structured-array

要定义结构化数组,我们可以使用tuple参数。 例如:

>>> x = np.zeros(3, dtype=('i4',[('r','u1'), ('g','u1'), ('b','u1'), ('a','u1')]))
>>> x
array([0, 0, 0])
>>> x['r']
array([0, 0, 0], dtype=uint8)

我无法理解,为什么x array([0,0,0])?为什么x ['r'] array([0,0,0])呢?

1 个答案:

答案 0 :(得分:0)

此示例似乎是从(base_dtype, new_dtype)文档页面的dtypes段落中复制而来的。 https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

32-bit integer, containing fields r, g, b, a that interpret the 4 bytes in the integer as four unsigned integers:

>>>>>> dt = np.dtype(('i4', [('r','u1'),('g','u1'),('b','u1'),('a','u1')]))

它创建了一个很少见的双重映射。每个元素可以看作4个bypte int,或4个字段记录。