我有一个三维数组的图像,如
[
[
[225, 0, 0],
[225, 225, 0],
...
],
[
[225, 0, 0],
[225, 225, 0],
...
],
...
]
此阵列的大小为500x500x3,其中750.000个元素。 这些是在数组上迭代的简单嵌套循环
for row in arr:
for col in row:
for elem in col:
elem = (2 * elem / MAX_COLOR_VAL) - 1
但是迭代需要花费大量时间(>;5分钟)。你知道吗
我是numpy的新手,所以可能我迭代数组的方式不对?如何优化这些循环?你知道吗
Numpy数组不是设计用来对元素进行迭代的。它甚至可能比在Python列表上迭代要慢,因为这将导致大量元素的包装和展开。你知道吗
Numpy阵列被设计成在批量中进行处理。例如,计算两个1000×1000矩阵的元素和。你知道吗
如果要将所有元素与
2
相乘,则将这些元素除以MAX_COLOR_VAL
,然后从中减去一个元素,您只需构造一个新数组:这将对所有元素应用此操作。你知道吗
相关问题 更多 >
编程相关推荐