Python 关于Numpy';s结构阵列

Python 关于Numpy';s结构阵列,python,numpy,structured-array,Python,Numpy,Structured Array,要定义结构化数组,我们可以使用元组参数。 例如: >>> 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数组([0,0,0])?为什么x['r']数组([0,0,0])也是这样?此示例似

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

>>> 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
数组([0,0,0])
?为什么x['r']
数组([0,0,0])
也是这样?

此示例似乎是从
数据类型
文档页面的
(基本类型,新类型)
段落复制而来的


它创建了一个罕见的双重映射。每个元素都可以看作是一个4字节的整数,或者是一个4字段的记录。

也许你应该简单地尝试
np.zero(3,dtype=[('r','u1'),('g','u1'),('b','u1'),('a','u1'))
对于RGB通道,
i4
在[]之外?它创建了一个罕见的双重映射。每个元素都可以看作是一个4字节的int,或者是一个4字段的记录。
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')]))