我注意到 rankdata 与 maksed_array 的以下奇怪行为。这是代码:
import numpy as np
import scipy.stats as stats
m = [True, False]
print(stats.mstats.rankdata(np.ma.masked_array([1.0, 100], mask=m)))
# result [0. 1.]
print(stats.mstats.rankdata(np.ma.masked_array([1.0, np.nan], mask=m)))
# result [1. 0.]
print(stats.mstats.rankdata([1.0, np.nan]))
# result [1. 2.]
根据 scipy doc,掩码值将被分配 0 (use_missing=False)。那么为什么它在第二个输出 [1 0] 呢?漏洞?