到目前为止我发现的最优雅的解决方案(它一点也不优雅)是初始化类型的掩码数组float
并将其转换为int
然后:
ma.masked_invalid(np.array(a, dtype=float), copy=False).astype(int)
这会生成一个正确的 NP 数组,其中None
初始数组中的值a
被蒙蔽。例如,对于:
a = [1, 2, 3, None, 4]
ma.masked_invalid(np.array(a, dtype=float), copy=False).astype(int)
we get:
masked_array(data = [1 2 3 -- 4],
mask = [False False False True False],
fill_value = 999999)
此外,实际的 masked int 值变为 min int,即
ma.masked_invalid(np.array(column, dtype=float), copy=False).astype(int).data
gives:
array([ 1, 2, 3,
-9223372036854775808, 4])