Interested in becoming a contributor to any of our Sponsored Projects? Follow the links below to learn how! If you’re looking for guidance on getting started with open source, this is a great introduction to open source and this is a great overview of best practices in scientific computing.
Support multiple projects with just one donation by making a gift to the NumFOCUS General Fund!
Fiscally Sponsored Projects
Data Carpentry, a sister organization to Software Carpentry, aims to teach basic concepts, skills and tools for working more effectively with data. We are a community that develops lessons and runs workshops to teach researchers the skills to organize, manage and analyze data in a more efficient and reproducible way.
Our mission is to help scientists be more productive by teaching them basic computing skills. Our approach combines short, intensive workshops with self-paced online instruction. The benefits are more reliable results and higher productivity: a day a week is common, and a ten-fold improvement isn’t rare. For more information check out our blog at http://software-carpentry.org/blog/, follow us on twitter as @swcarpentry, or contact us by email at email@example.com.
The FEniCS Project is a collection of tools with extensive features for the automated and efficient solution of differential equations. Partial differential equations can be specified in near-mathematical notation (as finite element variational problems) and solved automatically.
The Journal of Open Source Software (JOSS) is an open source, open access journal primarily designed to make it easier for those individuals authoring research software to gain career credit for their work by publishing short software papers.
IPython is the historical parent of Jupyter Notebook and continues to exist as the reference Python kernel for the Jupyter Notebook. IPython also includes a parallel computing framework (ipyparallel), interactive widgets for the Jupyter Notebook (ipywidgets) and base utilities for building reactive applications in Python (traitlets).
Project Jupyter is an open source project that offers a set of tools for interactive and exploratory computing. These tools support reproducible and collaborative scientific computing and data science across a wide range of programming languages (Python, Julia, R, etc.). The main application offered by Project Jupyter is the Jupyter Notebook, a web-based interactive computing platform that allows users to author computational narratives that combine live code, equations, narrative text, interactive user interfaces and other rich media. These documents provide a complete record of a computation that can be converted to a number of formats (HTML, PDF, etc.) and shared with others through email, Dropbox, GitHub and the Jupyter Notebook Viewer.
Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packagesthrough Julia’s built-in package manager at a rapid pace. IJulia, a collaboration between the IPython and Julia communities, provides a powerful browser-based graphical notebook interface to Julia.Julia programs are organized around multiple dispatch; by defining functions and overloading them for different combinations of argument types, which can also be user-defined. For a more in-depth discussion of the rationale and advantages of Julia over other systems, see the following highlights or read the introduction in the online manual.
2D plotting library for Python that produces high quality figures that can be used in various hardcopy and interactive environments. Matplolib is compatible with Python scripts and the Python and IPython shells, web application servers, and six graphical user interface toolkits.
nteract is an open-source, desktop-based interactive computing application that is focused on accessibility and composability. nteract allows users to edit and share interactive notebook documents that contain explanatory text, executive code, and interactive visualizations. By combining the best of the web and the best of the desktop, nteract provides a user experience that is seamless and enjoyable for all.
NumPy is the fundamental package needed for scientific computing with Python. Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.
PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the NumPy package. It features a Pythonic interface combined with C / Cython extensions for the performance-critical parts of the code. This makes it a fast, yet extremely easy to use tool for very large amounts of data.
The aim of the QuantEcon organization is to improve the computational skill set of economists around the world by developing and providing systematic exposure to modern, cutting edge, open source computational methods suitable for economic research, econometrics, and decision making.
The Shogun Machine Learning Toolbox provides a complete selection of algorithms implemented in modern C++. They can be interfaced from a wide range of high-level programming languages, such as Python, R and Octave, and used from multiple operating systems – Shogun’s aim is to make machine learning available for everyone. The toolbox is one of the oldest open source ML libraries still in active development.
SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.
Stan is a probabilistic programming language for data analysis, enabling automatic inference for a large class of statistical models. It features full Bayesian inference with Markov chain Monte Carlo sampling, approximate Bayesian inference with variational inference and the Laplace approximation, and penalized maximum likelihood estimation with optimization. The language integrates a Math Library written in C++, which can act as a stand-alone, and features derivatives for arithmetic, special functions, probability functions, and linear algebra.Stan has interfaces for R, Python, Julia, MATLAB, Stata, and the command-line. For more details, see the online documentation, which includes the manual and several hundred model examples.
yt is a community-developed analysis and visualization toolkit for examining datasets in a variety of scientific disciplines. yt aims to provide a simple uniform way of handling volumetric data, regardless of where it is generated. yt is developed in Python under the open-source model.
contributors to projects