如果您的点是独立的,您可以单独检查每个维度的分布。Kolmogorov-Smirnov检验(衡量 2 个分布之间的距离)是一个很好的检验。首先让我们生成并绘制一些高斯分布的点,以便您了解如何使用 KS 检验(统计量)来检测非均匀分布。
>>> import numpy as np
>>> from matplotlib.pyplot import plt
>>> X = np.random.gauss(1000, 2) # 1000 2-D points, normally distributed
>>> from sklearn.preprocessing import MinMaxScaler
>>> scaler = MinMaxScaler()
>>> X = scaler.fit_transform(X) # fit to default uniform dist range 0-1
>>> X
array([[ 0.46169481, 0.7444449 ],
[ 0.49408692, 0.5809512 ],
...,
[ 0.60877526, 0.59758908]])
>>> plt.scatter(*list(X))
>>> from scipy import stats
>>> from sklearn.preprocessing import StandardScaler, MinMaxScaler
>>> stats.kstest(MinMaxScaler().fit_transform(X[:,0]), 'uniform')
KstestResult(statistic=0.24738043186386116, pvalue=0.0)
低 p 值和高 KS 统计量(与均匀分布的距离)表明几乎可以肯定不是来自 0 和 1 之间的均匀分布
>>> stats.kstest(StandardScaler().fit_transform(X[:,0]), 'norm')
KstestResult(statistic=0.028970945967462303, pvalue=0.36613946547024456)
但它们可能确实来自均值为 0 和标准差为 1 的正态分布,因为 p 值高且 KS 距离低。
然后你只需重复第二维 (Y) 的 KS 测试