繁体   English   中英

numpy中输入str的默认dtype是什么?

[英]What is the default dtype for str like input in numpy?

我只是想确认在创建ndarray字符串的默认数据类型是否为unicode 我找不到任何清楚说明这一点的参考文献。 可能是太明显了,不需要陈述。

指定dtype时:

>>> import numpy as np
>>> g = np.array([['a', 'b'],['c', 'd']], dtype='S')
>>> g
array([[b'a', b'b'],
       [b'c', b'd']], 
      dtype='|S1')

没有指定dtype:

>>> g = np.array([['a', 'b'],['c', 'd']])
>>> g
array([['a', 'b'],
       ['c', 'd']], 
      dtype='<U1')

此外,当指定dtype时,文字b表示什么。 根据文档,它表明bool似乎不是这里的情况。

有人可以澄清一下吗?

b'...'表示它是一个字节字符串,字符串数组的默认dtype取决于字符串的类型。 Unicodes(python 3字符串是unicode)是U而Python 2 str或Python 3 bytes都有dtype S 您可以在NumPy文档中找到dtypes的说明

数组协议类型字符串

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

  • '?' 布尔
  • 'b'(带符号)字节
  • 'B'无符号字节
  • 'i'(签名)整数
  • 'u'无符号整数
  • 'f'浮点
  • 'c'复杂浮点
  • 'm'timedelta
  • 'M'日期时间
  • 'O'(Python)对象
  • 'S','a'以零结尾的字节(不推荐)
  • 'U'Unicode字符串
  • 'V'原始数据(无效)

但是在第一种情况下,您实际上强制 NumPy将其转换为字节,因为您指定了dtype='S'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM