天体统计工具 (astropy.stats

介绍

这个 astropy.stats package holds statistical functions or algorithms used in astronomy. While the scipy.stats and statsmodels 软件包包含多种统计工具,它们是通用软件包,缺少一些对天文学特别有用或特别有用的工具。此软件包旨在提供此类功能,但是 not 替代 scipy.stats 如果它的实现满足天文学家的需要。

入门

stats包中包含许多不同的工具,可以通过导入它们来访问它们:

>>> from astropy import stats

下面提供了不同工具的完整列表。请参阅文档了解它们的不同用法。例如,sigma裁剪是估计图像背景的常用方法,可以使用 sigma_clip() 功能。默认情况下,函数返回一个屏蔽数组,其中异常值被屏蔽。

实例

要估计图像的背景:

>>> data = [1, 5, 6, 8, 100, 5, 3, 2]
>>> stats.sigma_clip(data, sigma=2, maxiters=5)
masked_array(data=[1, 5, 6, 8, --, 5, 3, 2],
             mask=[False, False, False, False,  True, False, False, False],
       fill_value=999999)

或者, SigmaClip 类为sigma剪辑提供面向对象的接口,该接口在默认情况下还返回一个屏蔽数组:

>>> sigclip = stats.SigmaClip(sigma=2, maxiters=5)
>>> sigclip(data)
masked_array(data=[1, 5, 6, 8, --, 5, 3, 2],
             mask=[False, False, False, False,  True, False, False, False],
       fill_value=999999)

此外,还有几个方便函数,使统计的计算更加方便。例如, sigma_clipped_stats() 将返回sigma剪裁数组的平均值、中值和标准差:

>>> stats.sigma_clipped_stats(data, sigma=2, maxiters=5)  
(4.2857142857142856, 5.0, 2.2497165354319457)

也有计算工具 robust statistics ,采样数据, circular statistics ,置信限,空间统计和自适应直方图。

大多数工具都是相当自包含的,并且在其docstring中包含相关的示例。

常量

这个 astropy.stats 软件包定义了两个用于转换高斯-西格玛和半最大全宽(FWHM)的常数:

gaussian_sigma_to_fwhm

乘以高斯1-西格玛标准差以将其转换为半最大全宽(FWHM)的系数。

>>> from astropy.stats import gaussian_sigma_to_fwhm
>>> gaussian_sigma_to_fwhm  
2.3548200450309493
gaussian_fwhm_to_sigma

将高斯全宽乘以半最大值(FWHM)以将其转换为1西格玛标准差的系数。

>>> from astropy.stats import gaussian_fwhm_to_sigma
>>> gaussian_fwhm_to_sigma  
0.42466090014400953

也见

  • scipy.stats

    这个SciPy包包含各种有用的统计函数和类。中的功能 astropy.stats 是为了补充这一点, not 更换它。

  • statsmodels

    statsmodels包提供用于估计不同统计模型、测试和数据探索的功能。

  • astroML

    astroML包是一个用于机器学习和数据挖掘的Python模块。这个软件包中的一些工具已经迁移到了这里,但是仍然有一些工具对天文学和统计分析有用。

  • astropy.visualization.hist()

    这个 histogram() 在中使用此处定义的例程和相关功能 astropy.visualization.hist() 功能。有关这些确定直方图分块的方法的讨论,请参见 选择直方图箱 .

性能提示

如果您发现sigma裁剪速度慢,而且您还没有这样做,请考虑安装 bottleneck 包,这将加速一些内部计算。另外,如果您使用的是 cenfunc 和/或 stdfunc 请确保将这些字符串指定为-NumPy,而不是使用-NumPy函数:

>>> sigma_clip(array, cenfunc='median')  

而不是::

>>> sigma_clip(array, cenfunc=np.nanmedian)  

使用字符串将允许sigma裁剪算法选择最快的实现来找到中值。

参考/API

astropy.stats 软件包

此子包包含Astropy提供或使用的统计工具。

scipy.stats 该软件包包含多种统计工具,是一个通用的软件包,缺少一些对天文学特别有用或在天文学中以非典型方式使用的工具。此软件包旨在提供此类功能,但是 not 替代 scipy.stats 如果它的实现满足天文学家的需要。

功能

binom_conf_interval(k, n[, ...])

二项比例置信区间给定k次成功,n次试验。

binned_binom_proportion(x, success[, bins, ...])

连续变量的二项比例与区间 x .

poisson_conf_interval(n[, interval, sigma, ...])

给定观测计数的泊松参数置信区间

median_absolute_deviation(data[, axis, ...])

计算中值绝对偏差(MAD)。

mad_std(data[, axis, func, ignore_nan])

使用 median absolute deviation (MAD) .

signal_to_noise_oir_ccd(t, source_eps, ...)

计算使用CCD在光学/IR中观察到的光源的信噪比。

bootstrap(data[, bootnum, samples, bootfunc])

在numpy数组上执行引导重采样。

kuiper(data[, cdf, args])

计算柯伊伯统计量。

kuiper_two(data1, data2)

比较两个样本的柯伊伯统计量。

kuiper_false_positive_probability(D, N)

计算柯伊伯统计量的假阳性概率。

cdf_from_intervals(breaks, totals)

从一对数组构造一个可调用的分段线性CDF。

interval_overlap_length(i1, i2)

计算两个间隔的重叠长度。

histogram_intervals(n, breaks, totals)

分段等权函数的直方图。

fold_intervals \(间隔)

将加权区间折为区间(0,1)。

biweight_location(data[, c, M, axis, ignore_nan])

计算重锤位置。

biweight_scale(data[, c, M, axis, ...])

计算体重秤。

biweight_midvariance(data[, c, M, axis, ...])

计算双权中方差。

biweight_midcovariance(data[, c, M, ...])

计算多变量对之间的双权中协方差。

biweight_midcorrelation(x, y[, c, M, ...])

计算两个变量之间的双权中间相关。

sigma_clip(data[, sigma, sigma_lower, ...])

对提供的数据执行sigma裁剪。

sigma_clipped_stats(data[, mask, ...])

根据提供的数据计算sigma裁剪统计。

jackknife_resampling \(数据)

对numpy数组执行jackknife重采样。

jackknife_stats(data, statistic[, ...])

根据刀切重采样执行刀切估计。

circmean(data[, axis, weights])

计算循环数据数组的圆平均角。

circstd(data[, axis, weights, method])

计算循环数据数组的循环标准差。

circvar(data[, axis, weights])

计算循环数据数组的循环方差。

circmoment(data[, p, centered, axis, weights])

计算 p -圆数据数组的三角圆矩。

circcorrcoef(alpha, beta[, axis, ...])

计算两个圆阵数据之间的相关系数。

rayleightest(data[, axis, weights])

执行瑞利均匀性测试。

vtest(data[, mu, axis, weights])

执行瑞利一致性检验,假设替代假设H1具有已知的平均角 mu .

vonmisesmle(data[, axis])

计算von-Mises分布参数的极大似然估计(MLE)。

bayesian_blocks(t[, x, sigma, fitness])

用Scargle贝叶斯块计算数据的最优分割

histogram(a[, bins, range, weights])

增强的直方图功能,提供自适应的二进制

scott_bin_width(data[, return_bins])

使用Scott规则返回最佳直方图库宽度

freedman_bin_width(data[, return_bins])

使用Freedman Diaconis规则返回最佳直方图bin宽度

knuth_bin_width(data[, return_bins, quiet])

使用Knuth规则返回最佳直方图库宽度。

calculate_bin_edges(a[, bins, range, weights])

计算直方图箱边,如下所示 numpy.histogram_bin_edges

bayesian_info_criterion(log_likelihood, ...)

计算贝叶斯信息准则(BIC),给出在估计(或分析推导)参数下评估的似然函数的对数、参数的数量和样本的数量。

bayesian_info_criterion_lsq(ssr, n_params, ...)

假设观测值来自高斯分布,计算贝叶斯信息准则(BIC)。

akaike_info_criterion(log_likelihood, ...)

计算Akaike信息准则(AIC)。

akaike_info_criterion_lsq(ssr, n_params, ...)

假设观测值为高斯分布,计算Akaike信息准则。

Classes

SigmaClip([sigma, sigma_lower, sigma_upper, ...])

类来执行sigma裁剪。

FitnessFunc([p0, gamma, ncp_prior])

贝叶斯块适应度函数的基类

Events([p0, gamma, ncp_prior])

Bayesian阻塞了binned或unbind事件的适应度

RegularEvents(dt[, p0, gamma, ncp_prior])

贝叶斯阻止了对常规事件的适应性

PointMeasures([p0, gamma, ncp_prior])

点测度的贝叶斯块适应度

RipleysKEstimator(area[, x_max, y_max, ...])

二维空间数据的Ripley K函数的估计量。

类继承图

Inheritance diagram of astropy.stats.sigma_clipping.SigmaClip, astropy.stats.bayesian_blocks.FitnessFunc, astropy.stats.bayesian_blocks.Events, astropy.stats.bayesian_blocks.RegularEvents, astropy.stats.bayesian_blocks.PointMeasures, astropy.stats.spatial.RipleysKEstimator