为什么python np数组输出中有更多的字符串



我很困惑为什么下面的代码答案是:

import numpy as np
dt=[('name','S16'),('grad',int),('cpg',float)]
val=[("Ahmadmm",2008,12),('ali',2010,12.2),('mitra',505,15.15)]
arr=np.array(val,dtype=dt)
print(arr)
output:  [(b'Ahmadmm', 2008, 12.  ) (b'ali', 2010, 12.2 ) (b'mitra',  505, 15.15)]

为什么每个字符串前面都有一个"b"?

我认为这篇文章回答了你的问题:';b';字符串文字前面的字符做什么?。"b"字符基本上表示一个字节文字。

正如NPE在这个问题中所说,引用Python 2.x文档:

Python 2中会忽略前缀"b"或"b";它指示该文本应该成为Python 3中的字节文本(例如,当代码用2to3自动转换时(。"u"或"b"前缀后面可以跟一个"r"前缀。

Python3文档说明:

字节文字总是以"b"或"b"为前缀;它们生成字节类型的实例,而不是str类型的实例。它们只能包含ASCII字符;数值为128或更大的字节必须用转义符表示。

最新更新