如何numpy的决定时,它包含多个dtypes数组数据类型?如何numpy的决定时,它包含多个dty

2019-05-12 14:12发布

我试图做的手在numpy的,我凸轮跨使用内置的方法dtype.Following为数不多的结果我有以下时的数据类型。 能否请您解释一下这是什么意思由U11

a1 = np.array([3,5,'p'])
print(a1.dtype)

O / P => U11

Answer 1:

是numpy的的数组对象PyArrayObject类型都有一个NPY_PRIORITY其表示其中应被视为阵列的类型的优先级属性dtype的情况下,它包含具有不同种类的数据类型的项目。 您可以通过访问这个优先PyArray_GetPriority API,它返回__array_priority__的OBJ或者如果不存在该名称的属性DEF属性(转换为双)。 在这种情况下Unicode有一个比整数类型更优先,这就是为什么a1.dtype返回U11

现在,对于U11或一般U#它由两个部分组成。 所述U其表示一个Unicode dtype#表示它可以容纳元件的数量。 这可能是在不同的平台不同的东西。

In [45]: a1.dtype
Out[45]: dtype('<U21')  # 64bit Linux

In [46]: a1.dtype.type  # The type object used to instantiate a scalar of this data-type. 
Out[46]: numpy.str_

In [49]: a1.dtype.itemsize
Out[49]: 84 # 21 * 4

阅读关于字符串类型和文档等数据类型的对象更详细的详细信息https://docs.scipy.org/doc/numpy-1.14.0/reference/arrays.dtypes.html#data-type-objects-dtype 。



文章来源: How does numpy determine the array data type when it contains multiple dtypes?