Numpy

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
NumPy
Ontwikkelaar Gemeenschapsproject
Recentste versie 1.6.1
Besturingssysteem Cross-platform
Categorie Numerieke wiskunde
Licentie New BSD license
Website http://numpy.scipy.org/
Portaal  Portaalicoon   Informatica

Numpy is een opensource-uitbreiding op de programmeertaal Python met als doel het toevoegen van ondersteuning voor grote, multi-dimensionale arrays en matrices, samen met een grote bibliotheek van wiskunde functies om met deze arrays te werken. De voorganger van numpy, Numeric, werd oorspronkelijk gemaakt door Jim Hugunin met bijdragen van diverse andere ontwikkelaars. In 2005 maakte Travis Oliphant NumPy door het opnemen van kenmerken van Numarray in NumPy met uitgebreide aanpassingen.

Motivatie[bewerken]

Omdat de standaard Pythonimplementatie een Interpreter is, lopen wiskundige algoritmen vaak veel langzamer dan gecompileerde equivalenten, zoals die geschreven in C. NumPy lost dit probleem op voor veel numerieke algoritmes door middel van multidimensionale arrays en tal van functies en operators die werken met arrays. Een algoritme dat voornamelijk kan worden uitgedrukt als bewerkingen op arrays en matrices kunnen daarom bijna net zo snel draaien als de equivalente C code.[1]

Numpy (PyLab) is een gratis alternatief voor MATLAB. Beiden zijn geïnterpreteerd en stellen de gebruiker in staat om snel programma's te schrijven, dit zolang de meeste handelingen werken met arrays of matrices in plaats van scalairen. Een voordeel van MATLAB is het grote aantal extra modules die beschikbaar is, waaronder de Simulink pakketten. NumPy echter, heeft het voordeel dat Python een meer moderne en complete programmeertaal is en bovendien open source is. Andere, aanvullende Python pakketten zijn ook beschikbaar: SciPy is een bibliotheek die meer MATLAB-achtige functionaliteit toevoegt en matplotlib is een pakket om uiteenlopende MATLAB-achtige diagrammen te maken. Intern vertrouwen zowel MATLAB en NumPy op LAPACK voor efficiënte berekeningen in de lineaire algebra.

Voorbeeld[bewerken]

Hieronder staat een eenvoudig voorbeeld van hoe er met NumPy interactieve array manipulaties gedaan kunnen worden om er vervolgens een grafiek van te maken met matplotlib.

>>> import numpy
>>> from matplotlib import pyplot
>>> x = numpy.linspace(0, 2 * numpy.pi, 100)
>>> y = numpy.sin(x)
>>> pyplot.plot(x, y)
>>> pyplot.show()

Geschiedenis[bewerken]

Numpy is gebaseerd op twee eerdere Python arraypakketten. De oorspronkelijke (Numeric), welke redelijk compleet en stabiel is, blijft beschikbaar maar is nu achterhaald. NumPy werd oorspronkelijk grotendeels geschreven in 1995 door Jim Hugunin met de hulp van vele mensen, waaronder Jim Fulton, David Ascher, Paul DuBois,[2] en Konrad Hinsen. Een nieuwere implementatie, Numarray, is een volledig herschrijving van Numeric, maar is ook uitgefaseerd numpy is een fusie tussen de twee, welke voortbouwt op de codebasis van Numeric waar het de kenmerken van numarray aan toevoegt.[3]

Er bestond een behoefte om Numeric in de Python standaard bibliotheek te krijgen, maar Guido van Rossum (de auteur van Python) was erg duidelijk over het feit dat de code niet was te onderhouden in de staat waarin het was. Een ander probleem was dat voor grote arrays Numeric erg traag was. Als gevolg hiervan werd een ander pakket genaamd Numarray gemaakt. Numarray was sneller voor grote arrays, maar langzamer voor kleine arrays. Voor een tijd werd zowel Numeric als Numarray gebruikt, beide met verschillende manieren om dezelfde doelen te bereiken. De laatste versie van Numeric v24.2 werd uitgebracht op 11 november 2005 en numarray v1.5.2 werd vrijgegeven op 24 augustus 2006.[4]

In het begin van 2005 wilde Travis Oliphant de gemeenschap herenigen rond een enkel array-pakket. De code van Numeric werd aangepast om het beter te kunnen onderhouden en het flexibel genoeg te maken om de nieuwe functies van Numarray toepasbaar te maken. Dit nieuwe project was een onderdeel van SciPy. Om te voorkomen dat een heel pakket geïnstalleerd moest worden alleen maar om een array object te krijgen, werd dit nieuwe pakket gescheiden en tot NumPy gedoopt. Terwijl de broncode vrij beschikbaar is en belangrijke documentatie bevat, is er ook een uitgebreide officiële Guide to numpy.[5] De documentatie is opgebouwd rond een verenigde docstring standaard.

Versie 1.5.1 van numpy is compatibel met Python versie 2.4-2.7 en 3.1+. Ondersteuning voor Python 3 werd toegevoegd in 1.5.0.[6] In 2011 startte PyPy de ontwikkeling van een uitvoering van de NumPy API voor PyPy.[7]

Zie ook[bewerken]

Externe links[bewerken]

Bronnen, noten en/of referenties
  1. SciPy PerformancePython Geraadpleegd op 2006-06-25
  2. Paul was hoofd ontwikkelaar voor Numerical Python, Paul F. Dubois 'web pagina
  3. Numarray Homepage Geraadpleegd op 2006-06-24
  4. NumPy Sourceforge Files Geraadpleegd op 2008-03-24
  5. Oliphant, Travis E., Guide to NumPy (PDF), 2006-12-07
  6. NumPy 1.5.0 Release Notes Geraadpleegd op 2011-04-29
  7. PyPy Status Blog: Numpy funding and status update Geraadpleegd op 2011-12-22