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

牛 :

我需要能够将A存储numpy arraydict缓存中。哈希速度很重要。

array代表indicies,所以在对象的真实身份并不重要,值。交互性不是问题,因为我只对当前值感兴趣。

为了将其存储在中,我应该哈希什么dict

我当前的方法是使用str(arr.data),它比md5我的测试更快


我从答案中合并了一些示例,以了解相对时间:

In [121]: %timeit hash(str(y))
10000 loops, best of 3: 68.7 us per loop

In [122]: %timeit hash(y.tostring())
1000000 loops, best of 3: 383 ns per loop

In [123]: %timeit hash(str(y.data))
1000000 loops, best of 3: 543 ns per loop

In [124]: %timeit y.flags.writeable = False ; hash(y.data)
1000000 loops, best of 3: 1.15 us per loop

In [125]: %timeit hash((b*y).sum())
100000 loops, best of 3: 8.12 us per loop

对于这种特定用例(少量索引),似乎可以arr.tostring提供最佳性能。

尽管对只读缓冲区进行散列操作本身很快,但设置可写标志的开销实际上使其变慢了。

弗雷德·富(Fred Foo):

如果将其设为只读,则可以简单地对基础缓冲区进行哈希处理:

>>> a = random.randint(10, 100, 100000)
>>> a.flags.writeable = False
>>> %timeit hash(a.data)
100 loops, best of 3: 2.01 ms per loop
>>> %timeit hash(a.tostring())
100 loops, best of 3: 2.28 ms per loop

对于非常大的阵列,hash(str(a))速度要快得多,但随后只考虑了阵列的一小部分。

>>> %timeit hash(str(a))
10000 loops, best of 3: 55.5 us per loop
>>> str(a)
'[63 30 33 ..., 96 25 60]'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

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

来自分类Dev

处理 NumPy 数组上的循环的最有效方法是什么?

来自分类Python

在numpy数组中查找模式的最有效方法

来自分类Dev

在numpy中比较数组的最有效方法?

来自分类Python

反转numpy数组的最有效方法

来自分类Javascript

对对象数组进行分组的最有效方法

来自分类Dev

将 2D numpy 数组中的每个元素与其 8 个邻居进行比较的最有效方法

来自分类Dev

最有效的计数 numpy

来自分类Dev

保存属性文件最有效

来自分类Dev

从数组删除的最有效方法?

来自分类Dev

根据单独数组的顺序对数组集合进行排序的最有效方法

来自分类Dev

将对象用作哈希键的最有效方法

来自分类Dev

在NumPy数组中查找包含子字符串的所有位置(最有效?)

来自分类Dev

处理C#中大型数据数组的最有效方法?

来自分类Dev

循环遍历需要异步处理的数组元素的最有效方法

来自分类Dev

对numpy数组进行有效的行操作

来自分类Python

有效地对numpy数组进行降序排序?

来自分类Dev

如何使用 numpy 进行有效的数组操作?

来自分类Dev

为多数组实现numpy.in1d的最有效方法

来自分类Dev

将numpy数组转换为Shapely点的最有效方法是什么?

来自分类Python

numpy:数组中唯一值的最有效频率计数

来自分类Dev

从Scipy CSR矩阵索引到numpy数组的最有效方法?

来自分类Python

在numpy数组中向前填充NaN值的最有效方法

来自分类Dev

计算二维Numpy数组中数字对频率的最有效方法

来自分类Dev

基于两个numpy数组获取排序索引的最有效方法

来自分类Python

检查NumPy数组中是否存在值的最有效方法是什么?

来自分类Dev

Numpy:在过滤数组中检索原始列的最有效方法

来自分类Dev

在二维numpy数组中计算False值的最有效(和pythonic)方法?

来自分类Dev

在Numpy数组中匹配模板的最有效方法是什么?

Related 相关文章

  1. 1

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

  2. 2

    处理 NumPy 数组上的循环的最有效方法是什么?

  3. 3

    在numpy数组中查找模式的最有效方法

  4. 4

    在numpy中比较数组的最有效方法?

  5. 5

    反转numpy数组的最有效方法

  6. 6

    对对象数组进行分组的最有效方法

  7. 7

    将 2D numpy 数组中的每个元素与其 8 个邻居进行比较的最有效方法

  8. 8

    最有效的计数 numpy

  9. 9

    保存属性文件最有效

  10. 10

    从数组删除的最有效方法?

  11. 11

    根据单独数组的顺序对数组集合进行排序的最有效方法

  12. 12

    将对象用作哈希键的最有效方法

  13. 13

    在NumPy数组中查找包含子字符串的所有位置(最有效?)

  14. 14

    处理C#中大型数据数组的最有效方法?

  15. 15

    循环遍历需要异步处理的数组元素的最有效方法

  16. 16

    对numpy数组进行有效的行操作

  17. 17

    有效地对numpy数组进行降序排序?

  18. 18

    如何使用 numpy 进行有效的数组操作?

  19. 19

    为多数组实现numpy.in1d的最有效方法

  20. 20

    将numpy数组转换为Shapely点的最有效方法是什么?

  21. 21

    numpy:数组中唯一值的最有效频率计数

  22. 22

    从Scipy CSR矩阵索引到numpy数组的最有效方法?

  23. 23

    在numpy数组中向前填充NaN值的最有效方法

  24. 24

    计算二维Numpy数组中数字对频率的最有效方法

  25. 25

    基于两个numpy数组获取排序索引的最有效方法

  26. 26

    检查NumPy数组中是否存在值的最有效方法是什么?

  27. 27

    Numpy:在过滤数组中检索原始列的最有效方法

  28. 28

    在二维numpy数组中计算False值的最有效(和pythonic)方法?

  29. 29

    在Numpy数组中匹配模板的最有效方法是什么?

热门标签

归档