ray (python) がマスクされた np.arrays で操作/統計を処理することは可能ですか? [この場合はnp.nansum(...) ]。
マスクされていない配列の場合、完全に機能します。ただし、マスクされた配列ではクラッシュします (以下のメッセージ エラーを参照)。
import numpy as np
import numpy.ma as ma
import ray
ray.init()
#-to nansum over axis 0 (layers)
@ray.remote
def sumo(x):
return np.nansum(x,axis=0,keepdims=True)
#-to allocate/reference the 3D-np.array into ray 'cores'
@ray.remote
def matrox(wat):
return ma.copy(wat)
#-a small reproducible example
data = np.int16((np.random.normal(size=(4,5,6))*100))
#-masking the data
data = ma.masked_less_equal(data,0)
#-this fails:
data_id = matrox.remote(data)
##-this doesn't fail as it gets rid off of the mask (but I DO need the mask)
#data_id = matrox.remote(data.data)
data_id = ray.put(data)
answer = ray.get(sumo.remote(data_id))
以下は、行を実行するときに表示されるエラーです。
data_id = matrox.remote(データ)
配列のサイズは 4x5x6=120 ですが、120 の値を 240=4x5x12 に適合させると「文句を言います」 ValueError : サイズ 120 の配列を形状 (4,5,12) に再形成できません