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

2021-11-09 11:54:44 +08:00
 LeeReamond

经过处理,已经让 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 ,有什么更好的办法吗?

879 次点击
所在节点    问与答
2 条回复
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
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()

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/814115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX