目标:转换str到np.ndarray的bytes大小为1:
import numpy as np
np.array("abc", dtype=[whatever])
没有 dtype 的实际结果: array('abc', dtype='<U3')
预期结果:array([b'a', b'b', b'c'], dtype=[whatever]这让我可以使用切片来获得
我发现但不明白的解决方法:
np.array("abc", dtype='c')
# array([b'a', b'b', b'c'], dtype='|S1')
我通过反复试验发现了这个,认为这'c'可能意味着“char”
我不明白的是: 为什么要按现在dtype='c'的方式工作?根据arrays.dtypes 参考,它'c'是“复数浮点”的缩写,'|S1'而是长度为 1 的“以零结尾的字节(不推荐)”。
也直接使用 '|S1' asdtype忽略除第一个字符之外的每个字符,这不是我所期望的,但我想它只是将 the"abc"作为一个参数,b'a'如果仅将单个字节指定为dtype:
np.array("abc", dtype='|S1')
# array(b'a', dtype='|S1')
问题):
为什么按照现在dtype='c'的方式工作?
(如果dtype='c'只是“偶然”工作,那么这样做的“正确方法”是什么?)
PS: 是的,有一个np.chararray,但根据链接的文档:
chararray 类的存在是为了与 Numarray 向后兼容,不推荐用于新开发。从 numpy 1.4 开始,如果需要字符串数组,建议使用 dtype object_、string_ 或 unicode_ 数组,并使用 numpy.char 模块中的免费函数进行快速向量化字符串操作。
但是建议dtypes object_,string_并且unicode_不拆串入字符,但返回ndarray一个元素。
问什么中文字符串解析不出来,用Dom解析汉字字符串变成问号?
如何用c语言求一串字符串中英文字母的个数?
C语言中的字符串
字符串常量
相关分类