SciPy 1.0: fundamental algorithms for scientific computing in Python
Jazyk angličtina Země Spojené státy americké Médium print-electronic
Typ dokumentu historické články, časopisecké články, přehledy
Grantová podpora
P 27703
Austrian Science Fund FWF - Austria
PubMed
32015543
PubMed Central
PMC7056644
DOI
10.1038/s41592-019-0686-2
PII: 10.1038/s41592-019-0686-2
Knihovny.cz E-zdroje
- MeSH
- algoritmy * MeSH
- biologické modely MeSH
- dějiny 20. století MeSH
- dějiny 21. století MeSH
- lineární modely MeSH
- nelineární dynamika MeSH
- počítačová simulace MeSH
- počítačové zpracování signálu MeSH
- programovací jazyk * MeSH
- software * MeSH
- výpočetní biologie dějiny metody MeSH
- Check Tag
- dějiny 20. století MeSH
- dějiny 21. století MeSH
- Publikační typ
- časopisecké články MeSH
- historické články MeSH
- přehledy MeSH
SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments.
Anton Pannekoek Institute Amsterdam The Netherlands
Australian Nuclear Science and Technology Organisation Lucas Heights NSW Australia
Berkeley Center for Cosmological Physics University of California Berkeley Berkeley CA USA
Berkeley Institute for Data Science University of California Berkeley Berkeley CA USA
Bruker Biospin Corp Billerica MA USA
College of Information and Computing Sciences University of Massachusetts Amherst Amherst MA USA
Department of Mathematics Brigham Young University Provo UT USA
Department of Mathematics University of California Los Angeles Los Angeles CA USA
Division of Biostatistics University of California Berkeley Berkeley CA USA
Electrical Engineering Brigham Young University Provo UT USA
Google LLC Montreal Quebec Canada
Independent researcher Amsterdam the Netherlands
Independent researcher Belmont Massachusetts USA
Independent researcher Logan Utah USA
Independent researcher Montreal Quebec Canada
Independent researcher New York NY USA
Independent researcher San Francisco CA USA
Independent researcher Saue Estonia
Independent researcher Tokyo Japan
Independent researcher Toulouse France
Institute for Learning and Brain Sciences University of Washington Seattle WA USA
Los Alamos National Laboratory Los Alamos NM USA
National Research University Higher School of Economics Moscow Russia
New Technologies Research Centre University of West Bohemia Plzeň Czech Republic
School of Psychology University of Birmingham Edgbaston Birmingham UK
Space Dynamics Laboratory North Logan UT USA
Ultrasound Imaging Mayo Clinic Rochester MN USA
University of Jyväskylä Jyväskylä Finland
Zobrazit více v PubMed
Oliphant, T.E.
van der Walt S, Colbert SC, Varoquaux G. The NumPy array: a structure for efficient numerical computation. Comput. Sci. Eng. 2011;13:22–30.
Pedregosa F, et al. Scikit-learn: machine learning in Python. J. Mach. Learn. Res. 2011;12:2825–2830.
van der Walt S, et al. scikit-image: image processing in Python. Peer J. 2014;2:e453. PubMed PMC
Nitz, A. et al. gwastro/pycbc: PyCBC v1.13.2 release, 10.5281/zenodo.1596771 (27 November 2018).
Vallisneri M, Kanner J, Williams R, Weinstein A, Stephens B. The LIGO Open Science Center. J. Phys. Conf. Ser. 2015;610:012021.
Abbott BP, et al. GW150914: First results from the search for binary black hole coalescence with Advanced LIGO. Phys. Rev. D. 2016;93:122003. PubMed PMC
Abbott BP, et al. GW170817: observation of gravitational waves from a binary neutron star inspiral. Phys. Rev. Lett. 2017;119:161101. PubMed
The Event Horizon Telescope Collaboration. et al. First M87 event horizon telescope results. III. Data processing and calibration. Astrophys. J. Lett. 2019;875:L3.
Blanton, K. At Mathworks, support + fun = success: CEO Jack Little believes in power of his workers–and their ideas.
Howell, D. Jack Dangermond’s digital mapping lays it all out.
Port, O. Simple solutions.
van Rossum, G.
Hugunin, J. The matrix object proposal (very long), https://mail.python.org/pipermail/matrix-sig/1995-August/000002.html (18 August 1995).
Hugunin, J. Extending Python for numerical computation, http://hugunin.net/papers/hugunin95numpy.html (1995).
Oliphant, T. E. Moving forward from the last decade of SciPy. Presentation slides, https://conference.scipy.org/scipy2010/slides/travis_oliphant_keynote.pdf (1 July 2010).
Oliphant, T. E. Some Python modules.
Oliphant, T. E. Modules to enhance Numerical Python.
Peterson P. F2PY: a tool for connecting Fortran and Python programs. Int. J. Comput. Sci. Eng. 2009;4:296–305.
Strangman, G. Python modules.
SciPy Developers. SciPy.org.
Vaught, T. N. SciPy Developer mailing list now online, https://mail.python.org/pipermail/scipy-dev/2001-June/000000.html (2001).
Jones, E. ANN: SciPy 0.10–scientific computing with Python, https://mail.python.org/pipermail/python-list/2001-August/106419.html (2001).
Vaught, T.N. Reference documentation and Tutorial documentation are now available for download as tarballs.
Vaught, T. N. [ANN] SciPy ‘02 - Python for Scientific Computing Workshop, https://mail.python.org/pipermail/numpy-discussion/2002-June/001511.html (2002).
Ascher, D., Dubois, P. F., Hinsen, K., Hugunin, J. & Oliphant, T. E. An open source project: Numerical Python, 10.5281/zenodo.3599566 (2001).
Greenfield, P. How Python slithered Into astronomy. Presentation, https://conference.scipy.org/scipy2011/slides/greenfield_keynote_astronomy.pdf (2011).
Greenfield, P., Miller, J.T., Hsu, J.T. & White, R.L. numarray: a new scientific array package for Python.
NumPy Developers. v1.0, https://github.com/numpy/numpy/releases/tag/v1.0 (25 October 2006).
Millman, K. J. & Pérez, F. Developing open-source scientific practice. in
Brandl, G. & the Sphinx team. Sphinx - Python Documentation Generator, http://www.sphinx-doc.org/en/master/ (2007).
Virtanen, P. et al. pydocweb: a tool for collaboratively documenting Python modules via the web.
Harrington, J. The SciPy documentation project. In
van der Walt, S. The SciPy documentation project (technical overview). In
Harrington, J. & Goldsmith, D. Progress report: NumPy and SciPy documentation in 2009. In
Pérez, F., Langtangen, H. P. & LeVeque, R. Python for scientific computing. In
Dubois PF. Python: batteries included. Comput. Sci. Eng. 2007;9:7–9.
Millman KJ, Aivazis M. Python for scientists and engineers. Comput. Sci. Eng. 2011;13:9–12.
Pérez F, Granger BE, Hunter JD. Python: an ecosystem for scientific computing. Comput. Sci. Eng. 2011;13:13–21.
Behnel S, et al. Cython: the best of both worlds. Comput. Sci. Eng. 2011;13:31–39.
Ramachandran P, Varoquaux G. Mayavi: 3D visualization of scientific data. Comput. Sci. Eng. 2011;13:40–51.
Muller E, et al. Python in neuroscience. Front. Neuroinform. 2015;9:11. PubMed PMC
GitHub. Network dependents - scipy/scipy, https://github.com/scipy/scipy/network/dependents (2019).
Boisvert RF, Howe SE, Kahaner DK. The guide to available mathematical software problem classification system. Commun. Stat. Simul. Comput. 1991;20:811–842.
Seabold, S. & Perktold, J. Statsmodels: econometric and statistical modeling with Python. In
Salvatier J, Wiecki TV, Fonnesbeck C. Probabilistic programming in Python using PyMC3. PeerJ Comput. Sci. 2016;2:e55. PubMed PMC
Foreman-Mackey D, Hogg DW, Lang D, Goodman J. emcee: the MCMC hammer. Publ. Astron. Soc. Pac. 2013;125:306–312.
Meurer A, et al. SymPy: symbolic computing in Python. PeerJ Comput. Sci. 2017;3:e103.
Hagberg, A. A., Schult, D. A. & Swart, P. J. Exploring network structure, dynamics, and function using NetworkX. In
Koelbel, C.H. & Zosel, M.E.
Piessens, R., de Doncker-Kapenga, E., Uberhuber, C.W. & Kahaner, D.K.
Hindmarsh, A.C. ODEPACK, a systematized collection of ODE solvers.
Dierckx, P.
Boggs, P.T., Byrd, R.H., Rogers, J.E. & Schnabel, R.B.
Moré. Jorge J., Garbow, B. S. & Hillstrom, K. E. User guide for MINPACK-1. Report ANL-80–74 (Argonne National Laboratory, 1980).
Swarztrauber, P. N. Vectorizing the FFTs. In
Swarztrauber PN. FFT algorithms for vector computers. Parallel Comput. 1984;1:45–63.
Lehoucq, R.B., Sorensen, D.C. & Yang, C. ARPACK users’ guide: solution of large scale eigenvalue problems with implicitly restarted Arnoldi methods. (Rice University, 1997).
Amos DE. Algorithm 644: A portable package for Bessel functions of a complex argument and nonnegative order. ACM Trans. Math. Softw. 1986;12:265–273.
Brown, B., Lovato, J. & Russell, K. CDFLIB, https://people.sc.fsu.edu/~jburkardt/f_src/cdflib/cdflib.html (accessed 6 July 2018).
Kernighan, B. W. & Ritchie, D. M.
Lenders F, Kirches C, Potschka A. trlib: a vector-free implementation of the GLTR method for iterative solution of the trust region problem. Optim. Methods Softw. 2018;33:420–449.
Li, X.S. et al. SuperLU Users’ Guide. Report LBNL-44289 (Lawrence Berkeley National Laboratory, 1999).
Li XS. An overview of SuperLU: algorithms, implementation, and user interface. ACM Trans. Math. Softw. 2005;31:302–325.
Barber CB, Dobkin DP, Huhdanpaa H. The Quickhull algorithm for convex hulls. ACM Trans. Math. Softw. 1996;22:469–483.
Lam, S. K., Pitrou, A. & Seibert, S. Numba: A LLVM-based Python JIT compiler. In
Bolz, C. F., Cuni, A., Fijalkowski, M. & Rigo, A. Tracing the meta-level: PyPy’s tracing JIT compiler. In
VanderPlas, J. Benchmarking nearest neighbor searches in Python, https://jakevdp.github.io/blog/2013/04/29/benchmarking-nearest-neighbor-searches-in-python/ (19 April 2013).
Maneewongvatana, S. & Mount, D. M. Analysis of approximate nearest neighbor searching with clustered point sets. Preprint at https://arxiv.org/pdf/cs/9901013.pdf (1999).
Molden, S. ENH: Enhancements to spatial.cKDTree, https://github.com/scipy/scipy/pull/4374/ (7 January 2015).
Aspnas, M., Signell, A. & Westerholm, J. Efficient assembly of sparse matrices using hashing. In
Cormen, T. H., Stein, C., Rivest, R. L. & Leiserson, C. E.
Moore A. W. et al. Fast algorithms and efficient statistics: N-point correlation functions. In
Feng, Y. ENH: Faster count_neighour in cKDTree / + weighted input data https://github.com/scipy/scipy/pull/5647 (2015).
Martin AM, Giovanelli R, Haynes MP, Guzzo L. The clustering characteristics of HI-selected galaxies from the 40% ALFALFA survey. Astrophys. J. 2012;750:38.
Anderson, E. et al.
Henriksen, I. Circumventing the linker: using SciPy’s BLAS and LAPACK within Cython. In
Andersen, E. D. & Andersen, K. D. (2000) The Mosek interior point optimizer for linear programming: an implementation of the homogeneous algorithm. In
The NETLIB LP test problem set, http://www.numerical.rl.ac.uk/cute/netlib.html (2019).
Andersen ED, Andersen KD. Presolving in linear programming. Math. Program. 1995;71:221–245.
Wormington M, Panaccione C, Matney Kevin M, Bowen DK. Characterization of structures from X-ray scattering data using genetic algorithms. Philos. Trans. R. Soc. Lond. A. 1999;357:2827–2848.
Storn R, Price K. Differential evolution — a simple and efficient heuristic for global optimization over continuous spaces. J. Glob. Optim. 1997;11:341–359.
Griffiths TL, Steyvers M. Finding scientific topics. Proc. Natl Acad. Sci. USA. 2004;101(Suppl. 1):5228–5235. PubMed PMC
Dierckx, P.
Virtanen, P. ENH: interpolate: rewrite ppform evaluation in Cython, https://github.com/scipy/scipy/pull/2885 (2013).
Burovski, E. add b-splines, https://github.com/scipy/scipy/pull/3174 (27 December 2013).
de Boor, C.
Mayorov, N. ENH: CubicSpline interpolator, https://github.com/scipy/scipy/pull/5653 (2 January 2016).
Fritsch FN, Carlson RE. Monotone piecewise cubic interpolation. SIAM J. Numer. Anal. 1980;17:238–246.
Akima H. A new method of interpolation and smooth curve fitting based on local procedures. J. Assoc. Comput. Mach. 1970;17:589–602.
Beck, K.
Silver A. Collaborative software development made easy. Nature. 2017;550:143–144. PubMed
Eghbal, N.
The Astropy Collaboration. et al. The Astropy Project: building an open-science project and status of the v2.0 core package. Astron. J. 2018;156:123.
Lev, O., Dufresne, J., Kasim, R., Skinn, B. & Wilk, J. pypinfo: view PyPI download statistics with ease, https://github.com/ofek/pypinfo (2018).
Abbott BP, et al. Observation of gravitational waves from a binary black hole merger. Phys. Rev. Lett. 2016;116:061102. PubMed
David Liu. The Intel distribution for Python, https://software.intel.com/en-us/articles/intel-optimized-packages-for-the-intel-distribution-for-python (25 August 2017, updated 30 October 2017, accessed 25 July 2018).
Nelder JA, Mead R. A simplex method for function minimization. Comput. J. 1965;7:308–313.
Wright, M. H. Direct search methods: once scorned, now respectable.
Powell MJD. An efficient method for finding the minimum of a function of several variables without calculating derivatives. Comput. J. 1964;7:155–162.
Powell, M. J. D. A direct search optimization method that models the objective and constraint functions by linear interpolation. In
Powell MJD. Direct search algorithms for optimization calculations. Acta Numerica. 1998;7:287–336.
Powell MJD. A view of algorithms for optimization without derivatives. Math. Today Bull. Inst. Math. Appl. 2007;43:170–174.
Polak E, Ribiere G. Note sur la convergence de methodes de directions conjuguees. Rev. française d’informatique et. de. Rech. op.érationnelle. 1969;3:35–43.
Nocedal, J. & Wright, S.
Byrd RH, Lu P, Nocedal J, Zhu C. A limited memory algorithm for bound constrained optimization. SIAM J. Sci. Comput. 1995;16:1190–1208.
Zhu C, Byrd RH, Lu P, Nocedal J. Algorithm 778: L-BFGS-B: Fortran subroutines for large-scale bound-constrained optimization. ACM Trans. Math. Softw. 1997;23:550–560.
Schittkowski K. On the convergence of a sequential quadratic programming method with an augmented Lagrangian line search function. Mathematische Operationsforschung und Statistik. Ser. Optim. 1983;14:197–216.
Schittkowski K. The nonlinear programming method of Wilson, Han, and Powell with an augmented Lagrangian type line search function. Part 2: an efficient implementation with linear least squares subproblems. Numer. Math. 1982;38:115–127.
Schittkowski K. The nonlinear programming method of Wilson, Han, and Powell with an augmented Lagrangian type line search function. Part 1: convergence analysis. Numer. Math. 1982;38:83–114.
Kraft, D. A software package for sequential quadratic programming. Report DFVLR-FR 88–28 (Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt, 1988).
Nash SG. Newton-type minimization via the Lanczos method. SIAM J. Numer. Anal. 1984;21:770–788.
Powell, M. J. D. A new algorithm for unconstrained optimization.
Steihaug T. The conjugate gradient method and trust regions in large scale optimization. SIAM J. Numer. Anal. 1983;20:626–637.
Conn, A.R., Gould, N.I.M. & Toint, P.L.
Moré JJ, Sorensen DC. Computing a trust region step. SIAM J. Sci.Statist. Comput. 1983;4:553–572.
Gould NIM, Lucidi S, Roma M, Toint PL. Solving the trust-region subproblem using the Lanczos method. SIAM J. Optim. 1999;9:504–525.
Abbasi, H. Sparse: a more modern sparse array library. In
Mohr PJ, Newell DB, Taylor BN. CODATA recommended values of the fundamental physical constants: 2014. J. Phys. Chem. Ref. Data. 2016;45:043102. PubMed PMC
Boisvert, R. F., Pozo, R., Remington, K., Barrett, R. F. & Dongarra, J. J. Matrix Market: a web resource for test matrix collections. In
Rew R, Davis G. NetCDF: an interface for scientific data access. IEEE Comput. Graph. Appl. 1990;10:76–82.
Duff, I.S., Grimes, R.G. & Lewis, J.G. Users’ guide for the Harwell-Boeing sparse matrix collection (release I), http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.8922 (1992).
Monitoring morphometric drift in lifelong learning segmentation of the spinal cord
The Tonoplast Topology Index-a new metric for describing vacuole organization
A curated global dataset of social contact between diverse language communities
Membrane transport of root-borne trans-zeatin riboside maintains the cytokinin homeostasis in shoots
Generalist vs. specialist strategy shapes microbiomes in blood feeding parasite Polyplax serrata
Observation of super-Alfvénic slippage of reconnecting magnetic field lines on the Sun
A New Method for Testing Thermodynamic Consistency of Vapor-Liquid Equilibrium Data
Determination of ADP/ATP translocase isoform ratios in malignancy and cellular senescence
Off-pore Nup98 condensates mobilize heterochromatic breaks and exclude Rad51