记住一个蒙面数组python

2024-09-28 22:20:55 发布

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

我有一个不包含数据值的numpy数组。我屏蔽了这些无数据值,以便它们不会影响我的计算:

    array = numpy.ma.masked_values(array, options['ndv'], copy=False)

然后,我使用memmove将numpy数组放入一个共享ctypes数组,方法是:

^{pr2}$

返回以下堆栈跟踪:

ctypes.memmove(data, array.data[:], len(array.data))
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: wrong type

是否可以使用memmove将掩码数组移到共享的ctypes数组中?在


Tags: 数据numpydatatype数组ctypesarrayoptions
1条回答
网友
1楼 · 发布于 2024-09-28 22:20:55

首先,您需要更改以下行:

ctypes.memmove(data, array.data[:], len(array.data))

看起来像这样:

^{pr2}$

,ctypes.memmove不了解掩码数组。相反,只需在“遮罩区域”(masked areas)设置为nan的情况下进行复制:

masked = array.copy()
masked[array == options['ndv']] = np.nan

...

ctypes.memmove(data, masked.ctypes.data, len(masked))

相关问题 更多 >