相关疑难解决方法(0)

快速方法Hash Numpy对象进行缓存

实施一个系统,当涉及到繁重的数学提升时,我想尽可能少地做.

我知道存在与numpy对象进行memoisation的问题,因此实现了一个惰性密钥缓存以避免整个"过早优化"参数.

def magic(numpyarg,intarg):
    key = str(numpyarg)+str(intarg)

    try:
        ret = self._cache[key]
        return ret
    except:
        pass

    ... here be dragons ...
    self._cache[key]=value
    return value
Run Code Online (Sandbox Code Playgroud)

但由于字符串转换需要很长时间......

t=timeit.Timer("str(a)","import numpy;a=numpy.random.rand(10,10)")
t.timeit(number=100000)/100000 = 0.00132s/call
Run Code Online (Sandbox Code Playgroud)

人们认为做"更好的方式"是什么意思?

python performance numpy

20
推荐指数
2
解决办法
9722
查看次数

Numpy NdArray Memoization

我正在进行一些计算密集的计算,处理numpy矩阵和ndarray,并且从一些挖掘中,有大约十二种不实现memoization的方法,通常充满了冲突,ndarrays是可变对象的问题.

有没有人遇到过一个可以处理numpy对象的相当普遍的memoisation装饰器?

python numpy matrix memoization multidimensional-array

10
推荐指数
1
解决办法
1924
查看次数

为什么在字符串上md5哈希比在python中的numpy数组上快得多?

在python / numpy中,我有一个名为的10,000x10,000数组random_matrix。我使用MD5计算哈希值str(random_matrix)和random_matrix本身。在字符串版本上花费0.00754404067993秒,在numpy数组版本上花费1.6968960762。当我将其放入20,000x20,000数组时,在字符串版本上花费0.0778470039368,在numpy数组版本上花费60.641119957秒。为什么是这样?numpy数组比字符串占用更多的内存吗?另外,如果我想用这些矩阵标识文件名,那么在计算散列值之前将其转换为字符串是一个好主意,还是有一些缺点?

python hash md5 numpy

1
推荐指数
1
解决办法
917
查看次数