nusset | |
---|---|
Type | Python-bibliotek [d] og matematiksoftware [d] |
Forfatter | Travis Oliphant [d] |
Udvikler | Travis Oliphant [d] |
Skrevet i | Python , C [2] og Fortran |
Operativ system | Unix-lignende operativsystem , macOS og Microsoft Windows |
Første udgave | 1995 |
nyeste version | 1.23.0 [1] ( 23. juni 2022 ) |
Læsbare filformater | NumPy data [d] |
Genererede filformater | NumPy data [d] |
Licens | ændret BSD-licens [d] [3] |
Internet side | numpy.org _ |
Mediefiler på Wikimedia Commons |
NumPy (forkortelse for Numerical Python ) er et open source-bibliotek til programmeringssproget Python . Evner:
Matematiske algoritmer implementeret i fortolkede sprog (f.eks. Python) er ofte meget langsommere end de samme algoritmer implementeret i kompilerede sprog (f.eks . Fortran , C , Java ). NumPy-biblioteket leverer implementeringer af beregningsalgoritmer (i form af funktioner og operatorer), der er optimeret til at arbejde med multidimensionelle arrays. Som følge heraf er enhver algoritme, der kan udtrykkes som en sekvens af operationer på arrays (matricer) og implementeret ved hjælp af NumPy, lige så hurtig som den tilsvarende kode, der kører i MATLAB [4] .
NumPy kan ses som et gratis alternativ til MATLAB. MATLAB-programmeringssproget minder overfladisk om NumPy: begge fortolkes, begge giver dig mulighed for at udføre operationer på arrays (matricer) og ikke på skalarer . Fordelen ved MATLAB er tilstedeværelsen af et stort antal pakker ("værktøjskasser"), for eksempel Simulink . For NumPy er der også lignende "pakker", for eksempel giver SciPy -biblioteket mere MATLAB-lignende funktionalitet, Matplotlib-biblioteket giver dig mulighed for at oprette plots i MATLAB-stilen. Både MATLAB og NumPy bruger kode baseret på koden i LAPACK- biblioteket til at løse grundlæggende lineære algebraproblemer .
Lad os se på et eksempel på at arbejde med NumPy i den interaktive IPython -skal .
Kører Python fra kommandolinjen:
ipython -pylabKoden:
x = linspace ( 0 , 2 * pi , 100 ) y = sin ( x ) plot ( x , y , 'ro-' ) vis ()Som et resultat af scriptet vil Matplotlib-biblioteket oprette grafen vist i figuren.
I 1995 skrev programmøren Jim Hugunin det numeriske Python-bibliotek. Biblioteket har udviklet sig med hjælp fra mange mennesker, herunder Jim Fulton, David Ascher, Paul DuBois og Konrad Hinsen. Biblioteket er tilgængeligt den dag i dag, det anses for ret stabilt og komplet, men forældet.
Numeric blev foreslået tilføjet til Python-standardbiblioteket, men Guido Van Rossum (Pythons forfatter) gjorde det klart, at koden i dens daværende tilstand var uvedligeholdelig.
Derudover var det numeriske bibliotek langsom til at behandle store mængder data.
Baseret på det numeriske bibliotek blev NumArray-biblioteket oprettet. Den numeriske kode er blevet fuldstændig omskrevet.
NumArray-biblioteket behandlede store arrays af data hurtigere end det numeriske bibliotek, men behandlede små arrays langsommere.
I et stykke tid blev både det numeriske bibliotek og NumArray-biblioteket brugt. Den seneste version af Numeric (v24.2) blev udgivet den 11. november 2005 . Den seneste version af NumArray (v1.5.2) blev udgivet den 24. august 2006 [5] . NumArray-biblioteket anbefales ikke længere til brug [6] .
I begyndelsen af 2005 ønskede programmør Travis Oliphant at forene fællesskabet omkring ét projekt og oprettede NumPy-biblioteket til at erstatte Numeric- og NumArray-bibliotekerne. NumPy blev oprettet ud fra den numeriske kode. Den numeriske kode er blevet omskrevet for at være nemmere at vedligeholde, og nye funktioner kan tilføjes til biblioteket. NumArray-funktioner er blevet tilføjet til NumPy.
NumPy var oprindeligt en del af SciPy-biblioteket. For at tillade andre projekter at bruge NumPy-biblioteket, er dets kode blevet placeret i en separat pakke.
NumPy-kildekoden er i det offentlige domæne. Der er en stor mængde dokumentation. Der er endda en detaljeret " Guide til NumPy " [7] .
NumPy v1.3.0 blev udgivet den 5. april 2009 og understøtter Python v2.6 [8] . Understøttelse af Python v3 er blevet tilføjet siden version 1.5.0.
Python | |
---|---|
Fællesskab | |
Implementeringer | |
Andet |
|