Skip to main content

Linear optimization with N-D labeled arrays in Python

Project description

linopy: Linear optimization with N-dimensional labeled variables

PyPI CI License doc codecov

linopy is an open-source python package that facilitates optimization with real world data. It builds a bridge between data analysis packages like xarray & pandas and problem solvers like cbc, gurobi (see the full list below). Linopy supports Linear, Integer, Mixed-Integer and Quadratic Programming while aiming to make linear programming in Python easy, highly-flexible and performant.

Main features

linopy is heavily based on xarray which allows for many flexible data-handling features:

  • Define (arrays of) contnuous or binary variables with coordinates, e.g. time, consumers, etc.
  • Apply arithmetic operations on the variables like adding, substracting, multiplying with all the broadcasting potentials of xarray
  • Apply arithmetic operations on the linear expressions (combination of variables)
  • Group terms of a linear expression by coordinates
  • Get insight into the clear and transparent data model
  • Modify and delete assigned variables and constraints on the fly
  • Use lazy operations for large linear programs with dask
  • Choose from different commercial and non-commercial solvers
  • Fast import and export a linear model using xarray's netcdf IO

Installation

So far linopy is available on the PyPI repository

pip install linopy

or on conda-forge

conda install -c conda-forge linopy

Supported solvers

linopy supports the following solvers

Note that these do have to be installed by the user separately.

License

Copyright 2021 Fabian Hofmann

This package is published under MIT license. See LICENSE.txt for details.

Project details


Download files

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

Source Distribution

linopy-0.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

linopy-0.2-py3-none-any.whl (62.2 kB view details)

Uploaded Python 3

File details

Details for the file linopy-0.2.tar.gz.

File metadata

  • Download URL: linopy-0.2.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for linopy-0.2.tar.gz
Algorithm Hash digest
SHA256 ce36ce64841b37407de9f610420b5b7f9b7458a0b52ea1094826c044442a00ce
MD5 6a4b01bacd8177896e7f50e975a0c80a
BLAKE2b-256 66122cca942678d01715ca255655e3bbc2fc58f238118e2e1193327687efcb2e

See more details on using hashes here.

File details

Details for the file linopy-0.2-py3-none-any.whl.

File metadata

  • Download URL: linopy-0.2-py3-none-any.whl
  • Upload date:
  • Size: 62.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for linopy-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cad709fd9bb44965589829908b6919f5c2066b12d6d332e470b0138aa4937b9b
MD5 51ee2b51b588aa179cffd85d1a7c3cbd
BLAKE2b-256 7c2c277a295df3f5eb241a8013a53c9b8d670ef6104149d1ed5381abde8a1c4c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page