跳转到主要内容

A python & numpy数据类型,用于具有量化的不确定性的浮点数。

项目描述

Code CI Docs CI Test Coverage Latest PyPI version Apache License

此包提供了一种python和numpy数据类型(uncertain),它实现了一个具有量化的不确定性的浮点值,允许进行非相关值的正向不确定性传播。

PyPI

pip安装numcertain

源代码

https://github.com/DiamondLightSource/numcertain

文档

https://DiamondLightSource.github.io/numcertain

发布

https://github.com/DiamondLightSource/numcertain/releases

算术示例

以下提供了一个使用提供的不确定数据类型的算术简例。

a = uncertain(42.0, 5.0)
b = uncertain(36, 12)

print(a + b)
print(a - b)
print(a * b)
print(a / b)
>> 78.0±13.0
>> 6.0±13.0
>> 1512.0±535.1784749034662
>> 1.1666666666666667±0.41294635409218067

以下提供了一个使用具有不确定dtype的numpy数组的算术简例。

a = array([uncertain(5.0, 3.0), uncertain(7.0, 6.0)])
b = array([uncertain(12.0, 4.0), uncertain(24.0, 8.0)])

print(a + b)
print(a - b)
print(a * b)
print(a / b)
>> [uncertain(17.0, 5.0) uncertain(31.0, 10.0)]
>> [uncertain(-7.0, 5.0) uncertain(-17.0, 10.0)]
>> [uncertain(60.0, 41.182520563948) uncertain(168.0, 154.50566332662373)]
>> [uncertain(0.4166666666666667, 0.2859897261385278) uncertain(0.2916666666666667, 0.268238998830944)]

替代方法

为了准确传播相关值的不确定性,必须知道计算出的期望值相对于其组成的期望值的导数。自动微分(autodiff)通过利用所有代码,无论其复杂性如何,在执行过程中都简化为一系列已知导数的原始算术操作的事实,通过应用链式法则,可以自动确定整体导数。

Python包Uncertainties提供了一种python数据类型,它执行autodiff以传播相应的不确定性,不幸的是,由于作为python对象实现,当用于数组数学时,库的性能不佳。

虽然使用自动微分传播不确定性描述了使用Python包JAX在数组数学中传播不确定性的方法。

请参阅https://DiamondLightSource.github.io/numcertain获取更详细的文档。

项目详情


下载文件

下载适用于您平台的应用文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分发

numcertain-0.3.0.tar.gz (48.2 kB 查看哈希值)

上传时间 源代码

构建分发

numcertain-0.3.0-cp311-cp311-win_amd64.whl (21.9 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

numcertain-0.3.0-cp311-cp311-win32.whl (21.0 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86

numcertain-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl (63.2 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ x86-64

numcertain-0.3.0-cp311-cp311-musllinux_1_1_i686.whl (60.4 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ i686

numcertain-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (55.6 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

numcertain-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (51.5 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

numcertain-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (20.3 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

numcertain-0.3.0-cp310-cp310-win_amd64.whl (21.9 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

numcertain-0.3.0-cp310-cp310-win32.whl (21.0 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86

numcertain-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (62.5 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ x86-64

numcertain-0.3.0-cp310-cp310-musllinux_1_1_i686.whl (59.6 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ i686

numcertain-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (55.3 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

numcertain-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (50.8 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

numcertain-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (20.3 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86-64

numcertain-0.3.0-cp39-cp39-win_amd64.whl (21.9 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

numcertain-0.3.0-cp39-cp39-win32.whl (21.0 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86

numcertain-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl (62.0 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ x86-64

numcertain-0.3.0-cp39-cp39-musllinux_1_1_i686.whl (58.9 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ i686

numcertain-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (54.8 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

numcertain-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (50.3 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

numcertain-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (20.3 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

支持者