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

对numpy数组进行哈希处理的最有效属性

对numpy数组进行哈希处理的最有效属性

慕森王 2021-03-23 16:49:38
我需要能够将A存储numpy array在dict缓存中。哈希速度很重要。该array代表indicies,所以在对象的真实身份并不重要,值。交互性不是问题,因为我只对当前值感兴趣。为了将其存储在中,我应该进行什么哈希处理dict?我当前的方法是使用str(arr.data),它比md5我的测试更快。我从答案中合并了一些示例,以了解相对时间:In [121]: %timeit hash(str(y))10000 loops, best of 3: 68.7 us per loopIn [122]: %timeit hash(y.tostring())1000000 loops, best of 3: 383 ns per loopIn [123]: %timeit hash(str(y.data))1000000 loops, best of 3: 543 ns per loopIn [124]: %timeit y.flags.writeable = False ; hash(y.data)1000000 loops, best of 3: 1.15 us per loopIn [125]: %timeit hash((b*y).sum())100000 loops, best of 3: 8.12 us per loop对于这种特定用例(少量索引),似乎arr.tostring提供了最佳性能。尽管对只读缓冲区进行散列操作本身很快,但设置可写标志的开销实际上使其变慢了。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 492 浏览
慕课专栏
更多

添加回答

举报

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