Numpy的类型字符串(如果适用的话指定endianness、数据的种类和每个项的数量)包括一个"String“选项'S',例如,'|S20'或'S20'表示一个固定长度的20字符(在C意义上,即20个字节)数据类型。
这个字符串('S')类型不推荐吗?
在python 2中,对固定长度的python字符串数组使用这种数据类型是有意义的。在python 3中,这种numpy类型现在对应于python字节对象,需要显式编码才能将其转换为python字符串。
在numpy数组中是否有存储python 3字符串的首选方法?数据类型长度现在与字符串中的字符数有什么关系?Unicode-string类型'U'是否存储固定数量的字符,还是取决于存储的字符(即它们是否有短编码)而有所不同?是否有一种将numpy字符串转换为python字符串的首选方法?
发布于 2019-07-19 15:31:42
在Python3中,numpy只使用numpy.str_将其字符串表示为unicode。你没必要担心这个。只需将所有字符串视为str,因为对您来说并没有太大的差别。存储字符串的首选方法是unicode格式,数据类型长度对应于数组中最长的字符串。此长度是固定的,因此对数组的任何更改都会将较长的字符串截断到该固定大小。在必要时,numpy会处理所有的转换。
print(type(np.asarray(['abc','xyz'])[0]))
print(type(np.asarray(['abc','xyz']).tolist()[0]))<class 'numpy.str_'>
<class 'str'>https://stackoverflow.com/questions/56555594
复制相似问题