我想通过利用多重处理来部分更改大型 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)