并行化numpy数组中每个单元的操作

2024-05-14 07:01:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出在2dnumpy数组中为每个单元并行执行单个操作的最佳方法。在

特别是,我需要对数组中的每个单元执行位操作。在

这是我使用单个for循环所做的:

for x in range(M):
    for y in range(N):
        v[x][y] = (v[x][y] >> 7) & 255

我找到了一种方法,使用vectorize方法来完成上述操作:

^{2}$

然而,使用向量化似乎并不能提高性能。在

我在this answer on StackOverflow上读到了numexpr,其中也引用了TheanoCython尤其是no似乎是一个很好的解决方案,但是我找不到适合我的例子。在

所以我的问题是:使用并行化和可能的GPU计算,哪一个是改进上述代码的最佳方法?有人可以发布一些示例代码吗?在


Tags: 方法代码answerinforonrange数组
1条回答
网友
1楼 · 发布于 2024-05-14 07:01:43

我不熟悉按位操作,但这里给出的结果与您的代码相同,并且是矢量化的。在

import numpy as np

# make sure it is a numpy.array
v = np.array(v)

# vectorized computation
N = (v >> 7) & 255

相关问题 更多 >

    热门问题