小编Sen*_*Yan的帖子

共享 numpy 数组时的 python 多处理

我想通过利用多重处理来部分更改大型 numpy 数组中的值。

也就是说我最后想要得到[[100, 100, 100], [100, 100, 100]]。

但是,以下代码是错误的,它显示“RuntimeError:SynchronizedArray 对象只能通过继承在进程之间共享”

我应该怎么办?谢谢。

import numpy as np
import multiprocessing

from multiprocessing import RawArray, Array


def change_array(array, i, j):
    X_np = np.frombuffer(array.get_obj(), dtype=np.float64).reshape(2, 3)
    X_np[i, j] = 100
    print(np.frombuffer(array.get_obj()))

if __name__ == '__main__':
    X_shape = (2, 3)
    data = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
    X = Array('d', X_shape[0] * X_shape[1])
    # Wrap X as an numpy array so we can easily manipulates its data.
    X_np = np.frombuffer(X.get_obj()).reshape(X_shape)
    # Copy data to …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy python-multiprocessing

2
推荐指数
1
解决办法
3345
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1

python-multiprocessing ×1