Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Cython中使用prange选择性地复制Ndaray行_Python_Numpy_Parallel Processing_Cython - Fatal编程技术网

Python 在Cython中使用prange选择性地复制Ndaray行

Python 在Cython中使用prange选择性地复制Ndaray行,python,numpy,parallel-processing,cython,Python,Numpy,Parallel Processing,Cython,我有一个关于我用Cython编写的一个相对简单的操作的问题,我想将其并行化,但我没有找到任何文档或问题,似乎指向了正确的方向 简单地说,我想根据条件将一个数组的子集复制到另一个数组中 我有一个很大的点矩阵,对于每个点,我想检查它是否在一个中心点的某个距离内,如果是的话,把它复制到我的结果矩阵中。out_点已分配到与输入区段_点相同的大小,因此我知道它将适合。所有变量都被视为整数和整数 for pp in range(extent_points.shape[0]): meets_condi

我有一个关于我用Cython编写的一个相对简单的操作的问题,我想将其并行化,但我没有找到任何文档或问题,似乎指向了正确的方向

简单地说,我想根据条件将一个数组的子集复制到另一个数组中

我有一个很大的点矩阵,对于每个点,我想检查它是否在一个中心点的某个距离内,如果是的话,把它复制到我的结果矩阵中。out_点已分配到与输入区段_点相同的大小,因此我知道它将适合。所有变量都被视为整数和整数

for pp in range(extent_points.shape[0]):
    meets_condition = 1
    for ii in range(extent_points.shape[1]): # check if in bounds
        if extent_points[pp,ii] < (epicenter[ii] - radius) or \
           extent_points[pp,ii] > (epicenter[ii] + radius):
            meets_condition = 0; break
    if meets-condition == 1: # if in bounds, then copy to output matrix
        for ii in range(extent_points.shape[1]):
            out_points[out_count,ii] = extent_points[pp,ii]
        out_count += 1
return out_points[:out_count, :]
在我的许多点上并行检查这个条件似乎应该是令人尴尬的并行,但我不清楚如何并行复制。如果不应该复制,我是否应该在输入上标记一列,然后再次迭代并复制?除了简短的Cython用户指南和?

关于如何使用指针为每个进程分配数组区域的示例之外,还有更多的prange文档吗?它可能对您的情况有所帮助。。。