numpy.chararray发生了什么事

时间:2016-07-27 19:41:12

标签: numpy

  Scenario: This is a test      # sample/helloworld/readycheck.feature:3
    Given This is my first step # StepDefinitions.This_is_my_first_step()
    When This is my second step # StepDefinitions.This_is_my_second_step()
    Then This is my third step  # StepDefinitions.This_is_my_third_step()

1 Scenarios (1 passed)
3 Steps (3 passed)
0m0.221s


sample.helloworld.ReadyCheckTest > testDoGet STANDARD_OUT
Checking ready status...
Returing ready code: 200

sample.helloworld.ReadyCheckTest > testDoPost STANDARD_OUT
Set isReady to true
:buildDashboard UP-TO-DATE
:sonarqube
Resource not found: Scenario: This is a test

BUILD SUCCESSFUL

Total time: 11.112 secs

我的问题是'b'来自哪里......我从jupyter笔记本和PyCharm得到了这个

2 个答案:

答案 0 :(得分:3)

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

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

byte文字是八位字节序列(ASCII)。

别担心,它们不是实际字符串的一部分。请参阅b不在引号内。

有关详情,请转至python's official website.

答案 1 :(得分:2)

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

chararray有一个unicode参数。

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'