StatKit 0.4.0

StatKit 0.4.0

Jimmy M Andersson 维护。



StatKit 0.4.0

StatKit


Platform Support

Twitter: @jimmymandersson Sponsor this project

Swift PM Compatible Cocoapods Compatible


欢迎来到 StatKit,适用于 Swift 开发者的统计分析工具集。StatKit 将统计分析工具直接添加到您每天使用的 Swift 类型中,如 Array、Set 和 Dictionary。

内置统计

StatKit 扩展了 Swift 标准库,涵盖了您日常工作中经常使用的类型中的统计分析相关功能。使用 StatKit,您可以计算各种有用的统计数据,例如

  • 集中趋势
    计算数据集中的众数、均值和中位数。

  • 变异性
    计算方差和标准差。

  • 相关性
    寻找测量值的线性趋势和协方差。

  • 分布
    使用几种常见的分布类型进行计算。

一个简单的例子是计算一个整数数组的众数,这可以通过以下代码轻松实现

print([1, 2, 3, 3, 2, 4].mode(of: \.self))

// Prints [3, 2]

在这种情况下,mode(of:) 接受一个 KeyPath 参数,该参数指定数组中您感兴趣的自变量。在上述示例中,我们指定了 \.self keypath,它指向数组本身(在这种情况下,整数)。

指定一个或多个变量以进行调查的模式在 StatKit 库中很常见。它允许您使用相同的语法对多种不同类型的统计数据进行计算。例如,以下两个示例都能产生有效的结果,尽管所调查的类型完全不同

计算 String 中所有字符的众数

print("StatKit".mode(of: \.self))

// Prints ["t"]

计算数组中 CGPoint y 值的众数

import CoreGraphics

let points = [CGPoint(x: 0, y: 1), 
              CGPoint(x: 1, y: 3), 
              CGPoint(x: 3, y: 1)]

print(points.mode(of: \.y))
// Prints [1.0]

计算复杂自定义类型集合的统计

如前一部分的示例所示,当使用易于获取的类型集合进行统计计算时很容易。然而,我们中的大多数人会在项目中使用自定义数据结构。幸运的是,StatKit 通过大量使用泛型为任意自定义类型提供了支持。

让我们看看一种自定义数据结构,它跟踪特定品牌的汽车收集的数据点,以及我们如何使用StatKit轻松计算它们的油耗均值和标准差。

struct FuelConsumption {
  let modelYear: String
  let litersPer10Km: Double
}

let measurements: [FuelConsumption] = [...]

measurements.mean(.arithmetic, of: \.litersPer10Km)
measurements.standardDeviation(of: \.litersPer10Km, from: .sample)

如您所见,使用KeyPath让StatKit API的使用变得简单且易于重用,无论是在完全不规则的定制结构中还是其他情况下。

分布

StatKit为您提供了多种离散和连续分布类型,您可以利用这些类型来计算概率,计算常见的矩,如偏度和峰度,并从特定数据分布中生成随机数。

let normal = NormalDistribution(mean: 0, variance: 1)
print(normal.cdf(x: 0))
// Prints 0.5

let normalRandomVariables = normal.sample(10)
// Generates 10 samples from the normal distribution

系统需求

要使用StatKit,请确保您的系统已经安装了Swift 5.2(或更高版本)。如果您使用的是Mac,请确保xcode-select指向包含有效Swift版本的Xcode安装,并且您正在运行macOS Catalina(10.15)或更高版本。

重要
StatKit不正式支持任何测试版软件,包括Xcode和macOS的测试版以及尚未发布的Swift版本。

安装

Swift包管理器

要使用Swift包管理器安装StatKit,请将其作为一个依赖项添加到您的Package.swift文件中。

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/JimmyMAndersson/StatKit.git", from: "0.4.0")
    ],
    ...
)

然后,在您想要使用StatKit的位置导入它。

import StatKit

Cocoapods

要使用Cocoapods安装StatKit,只需在Podfile中添加pod 'StatKit'。要使用特定版本,请参阅Podfile语法参考

target 'MyApp' do
  use_frameworks!
  pod 'StatKit'
end

贡献和支持

StatKit是一个处于积极开发中的新项目。我们的愿景是为Swift开发者创建一个首选的统计库,就像SciPy和NumPy对Python语言的作用一样。

❤️ 考虑成为赞助商以支持这个库的开发
您可以通过支付下午茶或一顿饭来继续保持我的大脑活跃。

感谢您的贡献,并享受使用StatKit!