V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

有什么优雅的方式可以把 numpy 数组转换成哈希值吗?

  •  
  •   LeeReamond · 2021-11-09 11:54:44 +08:00 · 855 次点击
    这是一个创建于 1114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过处理,已经让 numpy 转换成了只包含 1 和 0 的一维数组

    [1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 ...]
    

    有什么优雅的办法能直接把这个变成字符串的哈希值么?比如每 8 个数生成一个 ascii 字符。。。

    考虑到有可能直接用这个哈希值作为文件名储存在 windows 系统中,似乎 ascii 全集并不被 win 所接受,还需要额外更改字符。目前想到的是映射到 base64 ,有什么更好的办法吗?

    2 条回复    2021-11-09 17:49:36 +08:00
    3dwelcome
        1
    3dwelcome  
       2021-11-09 13:04:04 +08:00
    这个简单,我以前写过。但不是用 base64 ,而是 36 ( http://en.wikipedia.org/wiki/Base_36

    用来在 apk 文件里,存中文文件名的。(不知道为什么,官方 apk 打包工具不支持中文名,百思不得其解。)

    因为是文件名,我只希望用 A-Z, 0-9 ,不希望有别的杂乱字符影响。
    PlayByMyself
        2
    PlayByMyself  
       2021-11-09 17:49:36 +08:00
    import numpy as np
    np.packbits([1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0]).data.hex()
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5532 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.