首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >numpy.chararray怎么了

numpy.chararray怎么了
EN

Stack Overflow用户
提问于 2016-07-27 19:41:11
回答 2查看 6.3K关注 0票数 2
代码语言:javascript
复制
#Input: 
chararr = np.chararray((3, 5))
chararr[:] = 'a'
chararr

#Output: 
chararray([[b'a', b'a', b'a', b'a', b'a'],
   [b'a', b'a', b'a', b'a', b'a'],
   [b'a', b'a', b'a', b'a', b'a']], 
  dtype='|S1')

我的问题是“b”是从哪里来的..。我是从jupyter笔记本和PyCharm上得到这个的

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-27 20:28:14

在Python3中,默认的字符串类型是unicode。使用b标志显示字节字符串。注意到<S1的dtype吗?这意味着字节,<U1用于unicode ( Py2和Py3都是如此)。

chararray有一个unicode参数。

代码语言:javascript
复制
In [161]: A=np.chararray((3,5),unicode=True)
In [162]: A[:]='a'
In [163]: A
Out[163]: 
chararray([['a', 'a', 'a', 'a', 'a'],
       ['a', 'a', 'a', 'a', 'a'],
       ['a', 'a', 'a', 'a', 'a']], 
      dtype='<U1')

如果我在Py2上也这么做,我就会看到u'a'

票数 3
EN

Stack Overflow用户

发布于 2016-07-27 20:16:40

字符串前面的b显示它是一个字节文本。它们是字节类型的实例,而不是str类型的实例,并且可能只包含ASCII字符。

str文本是Unicode字符的序列(UTF-16或UTF-32)。

byte文本是八元序列(ASCII)。

别担心,它们不是实际字符串的一部分。你看,b不在引号里。

有关详细信息,请访问python的官方网站。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38621820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档