使用Pebay结果的描述性统计

pebaystats的Python项目详细描述


可以找到有关存储库和包维护操作的信息 在Wiki上。

使用pip从pypi安装包:

bash> pip install pebaystats

pebaystats

提供统计力矩的单通道生成。此包基于文档中描述的公式 Formulas for Robust, One-Pass Parallel Computation of Covariances and Arbitrary-Order Statistical Moments, Phillipe Pébay, Sandia National Laboratories

请阅读“The Full Manual”以获取此包的更详细描述。

这个包的当前实现允许计算 一次多个数据集(列)的统计矩。 目前只计算前四个矩 源文件中的目的算法尚未实现。

注意

峰度值的聚集似乎遭受了一些损失 与scipy生成的值进行比较时的精度。这是真的 在累积简单数据值时不会发生,原因是 目前已知。我怀疑这是一个算术精度效应, 但还没有调查。

这个Python实现是从我的C++代码演化而来的,其中包括 能够从累加器中移除/分解数据。那个 功能最终将迁移到此处。

快速启动

from__future__importprint_function

从模块导入聚合对象。

frompebaystatsimportdstats

创建一些具有不同深度(矩数)和宽度的对象 (要计算统计信息的列数)。这里是stats1stats3对象每一个都为 数据,stats2对象为4收集4个统计矩 数据列。

stats1=dstats(2,1)stats2=dstats(4,4)stats3=dstats(2,1)

将单个数据值添加到 stats1对象。打印对象以查看其状态,包括 到目前为止,力矩值是累积的。另外,打印列表列表 从statistics()方法调用返回。在这里你可以看到 平均值为2.0,方差为0.0。

stats1.add(2)stats1.add(2)stats1.add(2)print('stats1: %s'%stats1)print('statistics: %s'%stats1.statistics())
stats1: dstats: 2 moments, 1 columns, 3 rows
[[ 2.]
 [ 0.]]
statistics: [[ 2.]
 [ 0.]]

stats2对象添加整行(多列)值。 查看累积结果。注意当第二个时刻 (n * Var)是0,相当于0的偏差,较高的力矩 处于初始0状态。较高的统计设置为 NaN本例中的值。

stats2.add([1.2,2,3,9])stats2.add([4.5,6,7,9])stats2.add([8.9,0,1,9])stats2.add([2.3,4,5,9])print('stats2: %s'%stats2)print('statistics: %s'%stats2.statistics(True))
stats2: dstats: 4 moments, 4 columns, 4 rows
[[  4.22500000e+00   3.00000000e+00   4.00000000e+00   9.00000000e+00]
 [  3.47875000e+01   2.00000000e+01   2.00000000e+01   0.00000000e+00]
 [  6.73818750e+01   7.10542736e-15   7.10542736e-15   0.00000000e+00]
 [  5.75139658e+02   1.64000000e+02   1.64000000e+02   0.00000000e+00]]
statistics: [[  4.22500000e+00   3.00000000e+00   4.00000000e+00   9.00000000e+00]
 [  2.94904646e+00   2.23606798e+00   2.23606798e+00   0.00000000e+00]
 [  6.56807734e-01   1.58882186e-16   1.58882186e-16              nan]
 [ -1.09897921e+00  -1.36000000e+00  -1.36000000e+00              nan]]

stats2对象中删除数据(未实现)。

# stats2.remove(1.2,2,3,9)

使用数据加载stats3对象并查看结果。

stats3.add(4)stats3.add(4)stats3.add(4)print('stats3: %s'%stats3)print('statistics: %s'%stats3.statistics())
stats3: dstats: 2 moments, 1 columns, 3 rows
[[ 4.]
 [ 0.]]
statistics: [[ 4.]
 [ 0.]]

现在将该对象聚合到第一个对象上。只有当 形状是一样的。

stats1.aggregate(stats3)print('stast1: %s'%stats1)print('statistics: %s'%stats1.statistics(True))
stast1: dstats: 2 moments, 1 columns, 6 rows
[[ 3.]
 [ 6.]]
statistics: [[ 3.]
 [ 1.]]

历史记录

0.1(2016-11-13)

  • pypi上的第一个版本

0.2(2016-11-13)

  • 更正了一些设置配置问题

0.3(2016-11-14)

  • 增加了对序列化的支持和测试

0.4(2017-1-4)

  • 添加了repl()和str()支持
  • 为不支持的方法和不支持的力矩添加了异常
  • 处理每列除以零
  • 改进了设置过程
  • 扩展测试
    • 已开始迁移到分解测试依赖项
    • 方差为0的测试列
    • 增加了用于评估预期倾斜和峰度值的scipy
    • 对不支持的时刻引发异常
  • 大量文档更新
    • 添加makefile以生成文档并创建自述文件
    • 已删除可选文件
    • 改为经典主题
    • 扩展内容和示例

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX FXML控制器密钥处理程序代码不工作   java为什么在thymeleaf布局中包含的图像需要很长时间才能显示?   更改Java数组的维数   java文本不会显示在文本框(单选按钮)上   内存不足使用Jmap在OutOfMemoryError上转储Java堆文件   通过浏览器偏移进行java时间转换   java意图不可序列化   java iTextPdf:动态更改单元格宽度   具有资源值的java SpringJUnit4 ClassRunner上下文配置   java AsyncTask仍在最近的应用程序上运行   尝试生成Cucumber报告时出现java CucumberException   爪哇,爪哇。朗。反思。带摘要分析器的InvocationTargetException   java如何在log4j2中实现日期模式转换器   带有MongoRepository:DBRef的java Spring   java将字节[]转换为int   来自服务器的java移动应用自动拨号消息   java如何调用泛型类型为T[]的方法作为参数?   java在switch语句中使用ArrayList类