LeeReamond
V2EX  ›  问与答

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

  •  
  •   LeeReamond · Nov 9, 2021 · 1548 views
    This topic created in 1646 days ago, the information mentioned may be changed or developed.

    经过处理,已经让 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 replies    2021-11-09 17:49:36 +08:00
    3dwelcome
        1
    3dwelcome  
       Nov 9, 2021
    这个简单,我以前写过。但不是用 base64 ,而是 36 ( http://en.wikipedia.org/wiki/Base_36

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

    因为是文件名,我只希望用 A-Z, 0-9 ,不希望有别的杂乱字符影响。
    PlayByMyself
        2
    PlayByMyself  
       Nov 9, 2021
    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()
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1055 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 153ms · UTC 18:42 · PVG 02:42 · LAX 11:42 · JFK 14:42
    ♥ Do have faith in what you're doing.