我只是想确认字符串的默认数据类型是否是unicode
在创建一个ndarray
。我找不到任何明确说明这一点的参考资料。也许这太明显了,不需要说明。
当指定 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')
不指定数据类型:
>>> g = np.array([['a', 'b'],['c', 'd']])
>>> g
array([['a', 'b'],
['c', 'd']],
dtype='<U1')
另外,字面意义是什么b
指示何时指定 dtype。根据文档,它表明bool
这里的情况似乎并非如此。
有人可以澄清一下吗?
b'...'
意味着它是一个字节字符串,字符串数组的默认数据类型取决于字符串的类型。 Unicode(python 3 字符串是 unicode)是U
和Python 2str
或Python 3bytes
有数据类型S
。您可以在中找到 dtypes 的解释NumPy 文档在这里 https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html#specifying-and-constructing-data-types
数组协议类型字符串
第一个字符指定数据类型,其余字符指定每个项目的字节数,Unicode 除外,在 Unicode 中它被解释为字符数。项目大小必须与现有类型相对应,否则将引发错误。支持的种类有:
- '?'布尔值
- 'b'(有符号)字节
- 'B' 无符号字节
- 'i'(有符号)整数
- 'u' 无符号整数
- 'f' 浮点数
- 'c' 复数浮点
- 'm' 时间增量
- 'M' 日期时间
- “O”(Python) 对象
- 'S'、'a' 以零结尾的字节(不推荐)
- 'U' Unicode 字符串
- “V”原始数据(无效)
然而在你的第一种情况下你实际上forcedNumPy 将其转换为字节,因为您指定了dtype='S'
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)