要定义结构化数组,我们可以使用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])
呢?
答案 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个字段记录。