【发布时间】:2014-11-28 16:45:10
【问题描述】:
actualrgn 是 3145728 个元素的一维 numpy.ndarray。 actualrgnexpand 是 2D numpy.ndarray,尺寸为 12 x 3145728。
for j in range(len(actualrgn)):
for i in reversed(range(12)):
if actualrgn[j] >= 2**i:
actualrgnexpand[i][j] = 1
actualrgn[j] -= 2**i
是否可以对上述内容进行矢量化,以便我失去actualrgn 元素的外循环?我尝试使用numpy.vectorize,但似乎很难将标量和向量的函数(使用数学等价物)转换为向量和矩阵的函数。我还尝试找到“内置”ufunc 来简化上述内容,但没有成功。
【问题讨论】:
-
如果您使用的是 Python 2.x,我建议为大数组调用
xrange而不是range。您节省了大量的空间和时间。
标签: python arrays numpy vectorization