为了账号安全,请及时绑定邮箱和手机立即绑定

用字符串理解 NumPy dtype “c”

用字符串理解 NumPy dtype “c”

12345678_0001 2021-07-16 18:05:38
目标:转换str到np.ndarray的bytes大小为1:import numpy as npnp.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一个元素。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信