actualrgn
是numpy.ndarray
3145728元素的一维。actualrgnexpand
是numpy.ndarray
尺寸为12 x 3145728的2D 。
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
”来简化上述操作,但没有成功。
向量化“ if”语句的常用方法是使用布尔值索引掩码。
for i in reversed(range(12)):
I = actualrgn >= 2**i
actualrgnexpand[i,I] = 1
actualrgn[I] -= 2**i
actualrgn[I]
是应该修改的数字子集。这些分配的右边必须是正确的大小。在这种情况下,标量适合所有情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句