Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pyAgrum

pyAgrum is a scientific C++ and Python library dedicated to Bayesian Networks and other Probabilistic Graphical Models. It provides a high-level interface to the part of aGrUM allowing to create, model, learn, use, calculate with and embed Bayesian Networks and other graphical models. Some specific (python and C++) codes are added in order to simplify and extend the aGrUM API.

Important

Since pyAgrum 2.0.0, the package name follows PEP8 rules and is now pyagrum (lowercase). Please use import pyagrum instead of import pyAgrum in your code.

See the CHANGELOG for more details.

Example

import pyagrum as gum

# Creating BayesNet with 4 variables
bn=gum.BayesNet('WaterSprinkler')
print(bn)

# Adding nodes the long way
c=bn.add(gum.LabelizedVariable('c','cloudy ?',["Yes","No"]))
print(c)

# Adding nodes the short way
s, r, w = [ bn.add(name, 2) for name in "srw" ]
print (s,r,w)
print (bn)

# Addings arcs c -> s, c -> r, s -> w, r -> w
bn.addArc(c,s)
for link in [(c,r),(s,w),(r,w)]:
bn.addArc(*link)
print(bn)

# or, equivalenlty, creating the BN with 4 variables, and the arcs in one line
bn=gum.fastBN("w<-r<-c{Yes|No}->s->w")

# Filling CPTs
bn.cpt("c").fillWith([0.5,0.5])
bn.cpt("s")[0,:]=0.5 # equivalent to [0.5,0.5]
bn.cpt("s")[{"c":1}]=[0.9,0.1]
bn.cpt("w")[0,0,:] = [1, 0] # r=0,s=0
bn.cpt("w")[0,1,:] = [0.1, 0.9] # r=0,s=1
bn.cpt("w")[{"r":1,"s":0}] = [0.1, 0.9] # r=1,s=0
bn.cpt("w")[1,1,:] = [0.01, 0.99] # r=1,s=1
bn.cpt("r")[{"c":0}]=[0.8,0.2]
bn.cpt("r")[{"c":1}]=[0.2,0.8]

# Saving BN as a BIF file
gum.saveBN(bn,"WaterSprinkler.bif")

# Loading BN from a BIF file
bn2=gum.loadBN("WaterSprinkler.bif")

# Inference
ie=gum.LazyPropagation(bn)
ie.makeInference()
print (ie.posterior("w"))

# Adding hard evidence
ie.setEvidence({"s": 1, "c": 0})
ie.makeInference()
print(ie.posterior("w"))

# Adding soft and hard evidence
ie.setEvidence({"s": [0.5, 1], "c": 0})
ie.makeInference()
print(ie.posterior("w"))

LICENSE

Copyright (C) 2005-2024 by Pierre-Henri WUILLEMIN et Christophe GONZALES {prenom.nom}_at_lip6.fr

The aGrUM/pyAgrum library and all its derivatives are distributed under the dual LGPLv3+MIT license, see LICENSE.LGPL and LICENSE.MIT.

You can therefore integrate this library into your software solution but it will remain covered by either the LGPL v.3 license or the MIT license or, as aGrUM itself, by the dual LGPLv3+MIT license at your convenience. If you wish to integrate the aGrUM library into your product without being affected by this license, please contact us (info@agrum.org).

This library depends on different third-party codes. See src/aGrUM/tools/externals for specific COPYING and explicit permission of the authors, if needed.

If you use aGrUM/pyAgrum as a dependency of your own project, you are not contaminated by the GPL license of some of these third-party codes as long as you use only their aGrUM/pyAgrum interfaces and not their native interfaces.

Authors

  • Pierre-Henri Wuillemin

  • Christophe Gonzales

Maintainers

  • Lionel Torti

  • Gaspard Ducamp

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_10_15_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0bb94fea43628738b0aa7b3e0fd0cf494a3df5a77ed2d85b4fe9e75b8721ba37
MD5 039f8376ae451f5a3c4a62bba2935b5d
BLAKE2b-256 7c5f9f07273b6d7ec6207dc928c05a51a5775b001a2ba3150886d9019cd4dddd

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67ae59d09bda6c29d8ec39762f371f37393fade758702b7a55d375e805604127
MD5 0496d7aa27725d117ca293abfb3239ec
BLAKE2b-256 fcd81ac71412d4af2ec83884393c9c8e8247e3d7b9fbf1fbb99358942f80b607

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a31a121ebfb5f6791413c96f64d01f46daa8de206fb6c214bbbb10fc0a29a6aa
MD5 25dacfd2621c8a7ba18bb7f6ac82c4e8
BLAKE2b-256 b4713aba5d7d43804e05705aa1b96cba6cc6dd9591c76145e53bbe7554968811

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11c843eb07dcd935cc479cba6f2272123f94f016951e95dea37ac6e204eda6cf
MD5 e87c86a36d3c86aa9f8a652d973d7540
BLAKE2b-256 8446a9b1f56287c60f07f01dc1e2c1dffccca24bb5cc18a1db663afa447d8f55

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608071784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 241e84a633d4d47323ee03285eb9ffff7b31c6dbe0eeb88d5e4ca523af05ed42
MD5 6e0fb099ffbcf901e0030034872ba22d
BLAKE2b-256 19ac66455c05cb5e355bc035f7f8ef84ac62391431133d2663eb664bbc08d4ce

See more details on using hashes here.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page