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

4

1 回答 1

0

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

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 字节的 int,或者是一个 4 字段的记录。

于 2017-03-17T11:26:45.670 回答