【发布时间】:2015-07-08 23:16:07
【问题描述】:
以下生成一个 C 连续的 numpy 数组:
import numpy
a = numpy.ones((1024,1024,5))
现在如果我切片它,结果可能不再相同。例如:
bn = a[:, :, n]
n 从 0 到 4。
我的问题是我需要 bn 是 C 连续的,并且我需要对 a.我只需要每个bn 一次,并且想避免这样做
bn = bn.copy(order='C')
我也不想这样重写我的代码
a = numpy.ones((5,1024,1024))
有没有比复制更快、更便宜的方法来获得bn?
背景:
我想散列每个 a 的每个切片,使用
import hashlib
hashlib.sha1(a[:, :, n]).hexdigest()
不幸的是,这将引发ValueError,抱怨订单。因此,如果有另一种快速获取我想要的哈希的方法,我也会使用它。
【问题讨论】:
-
在相关说明中,我只是通过大量调试了解了 hashlib 的行为,直到我发现异常真正来自何处。 python 文档不应该提到这一点吗?