如何解释Python输出dtype ='<U32'?

时间:2019-07-09 03:10:09

标签: python numpy

我正在上一个在线课程,并且以下内容证明了“ NumPy数组:仅包含一种类型”:

In [19]: np.array([1.0, "is", True])
Out[19]:
array(['1.0', 'is', 'True'],
dtype='<U32')

起初,我以为输出是错误消息的一种形式,但是网络搜索并未确认这一点。实际上,我还没有得到解释。...任何人都可以解释如何解释输出吗?

2 个答案:

答案 0 :(得分:2)

manual中有完整的解释:

  

可以转换几种字符串。可以使用'>'(大端),'<'(小端)或'='(默认为硬件本机)来识别字符串,以指定字节顺序。 / p>      

[...]

     

第一个字符指定数据的类型,其余字符指定每个项目的字节数,但Unicode除外,Unicode将其解释为字符数。项目大小必须与现有的类型相对应,否则将引发错误。支持的种类是

     

[...]

'U'        Unicode string

因此,一个32字符的低端Unicode字符串。

答案 1 :(得分:1)

dtype='<U32'是一个低端32位字符串。

documentation on dtypes深入每个字符。

'U' Unicode string

Several kinds of strings can be converted. Recognized strings can be prepended with '>' (big-endian), '<' (little-endian), or '=' (hardware-native, the default), to specify the byte order.

示例:

dt = np.dtype('f8')   # 64-bit floating-point number
dt = np.dtype('c16')  # 128-bit complex floating-point number
dt = np.dtype('a25')  # 25-length zero-terminated bytes
dt = np.dtype('U25')  # 25-character string```