NumPy
A NumPy nyílt forráskódú kiegészítő csomag a Python programozási nyelvhez, mely a nagy méretű, többdimenziós tömbök és mátrixok használatát támogatja magas szintű matematikai függvénykönyvtárral.

Hátrányok 
A vektorműveletként ki nem fejezhető algoritmusok általában lassabban futnak le, mert az eredeti Pythonban kell őket végrehajtani, míg a vektorizálás több memóriát igényel (ideiglenes tömböket kell létrehozni, melyek olyan nagyok, mint a bemenet).

Példák

Tömbök létrehozása

>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> x
array([1, 2, 3])
>>> y = np.arange(10) # mint a Python "range" függvénye, csak egy tömb az eredménye
>>> y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Alapvető műveletek
>>> a = np.array([1, 2, 3, 6])
>>> b = np.linspace(0, 2, 4) # egy tömb létrehozása 4 egyenletesen elosztott pontokkal 0-val kezdődően 2-ig.
>>> c = a - b
>>> c
array([1., 1.33333333, 1.66666667, 4.])
>>> a**2
array([1, 4, 9, 36])

Általános függvények
>>> a = np.linspace(-np.pi, np.pi, 100)
>>> b = np.sin(a)
>>> c = np.cos(a)

Lineáris algebra
>>> from numpy.random import rand
>>> from numpy.linalg import solve, inv
>>> a = np.array([[1, 2, 3], [3, 4, 6.7], [5, 9.0, 5]])
>>> a.transpose()
array([[1., 3., 5.],
       [2., 4., 9.],
       [3., 6.7, 5.]])
>>> inv(a)
array([[-2.27683616, 0.96045198, 0.07909605],
       [1.04519774, -0.56497175, 0.1299435],
       [0.39548023, 0.05649718, -0.11299435]])
>>> b =  np.array([3, 2, 1])
>>> solve(a, b)  # ax = b egyenlet megoldása
array([-4.83050847, 2.13559322, 1.18644068])
>>> c = rand(3, 3)  # véletlenszerű 3x3-as mátrix létrehozása
>>> c
array([[3.98732789, 2.47702609, 4.71167924],
       [9.24410671, 5.5240412 , 10.6468792 ],
       [10.38136661, 8.44968437, 15.17639591]])
>>> np.dot(a, c)  # mátrix szorzás
array([[3.98732789, 2.47702609, 4.71167924],
       [9.24410671, 5.5240412 , 10.6468792],
       [10.38136661, 8.44968437, 15.17639591]])

Történet 
A Python programozási nyelv eredetileg nem numerikus számításokra volt tervezve, de még a tervezés elején felkeltette a kutató- és mérnökközösség figyelmét. Ezért 1995-ben egy matrix-sig nevű érdekcsoport alakult azzal a céllal, hogy egy tömbszámítási csomagot hozzon létre. A csoport tagjai között volt a Python fő tervezője/fenntartója, Guido van Rossum, aki új függvényeket hozott létre a tömbszámítási feladatok megkönnyítésére.

Később Jim Fulton létrehozott egy hasonló csomagot a mátrixszámításokhoz, melyet Jim Hugunin általánosított. Így jött létre a Numeric (Numerical Python, NumPy).

Hugunin, az MIT-n végzős diák, 1997-ben csatlakozott a CNRI-hez, hogy a JPythonon dolgozzon.

Ezután a rugalmas Numarray csomag jött létre a Numeric helyett. Mára a Numarray és a Numeric is elavult.
A Numarray sokkal gyorsabban dolgozott a nagy tömbökkel, de a Numericnél lassabban a kicsikkel. Ezért egy ideig mind a két csomag használatban volt, és azt alkalmazták, amelyik az adott feladatra gyorsabb volt. A Numeric utolsó változatát (v24.2) 2005. november 11-én, a numarrayét (v1.5.2) pedig 2006. augusztus 24-én adták ki.

Egy ideig az volt a törekvés, hogy a Numeric bekerüljön a Python standard könyvtárai közé, de Guido van Rossum úgy vélte, hogy a kód már nem karbantartható eredeti formájában sem.

2005 elején a NumPy fejlesztője, Travis Oliphant egyesítette a két közösséget, így 2006-ban a Numarray és a Numeric csomagokból – a SciPy projekt részeként – létrejött a NumPy v1.0.
Hogy a SciPy csomag ne legyen túl nagy, a NumPy-t külön csomagként adták ki.

Kapcsolódó szócikkek 
 SciPy
 matplotlib
 Pandas

Jegyzetek

További információk 
 
 A NumPy története

Programozási nyelvek
A NumPy nyílt forráskódú kiegészítő csomag a Python programozási nyelvhez , mely a nagy méretű , többdimenziós tömbök és mátrixok használatát támogatja magas szintű matematikai függvénykönyvtárral . Hátrányok A vektorműveletként ki nem fejezhető algoritmusok általában lassabban futnak le , mert az eredeti Pythonban kell őket végrehajtani , míg a vektorizálás több memóriát igényel ( ideiglenes tömböket kell létrehozni , melyek olyan nagyok , mint a bemenet ) . Példák Tömbök létrehozása >>> import numpy as np >>> x = np.array ( [ 1 , ) >>> x array ( [ 1 , ) >>> y = np.arange ( 10 ) # mint a Python " range " függvénye , csak egy tömb az eredménye >>> y array ( [ 0 , ) Alapvető műveletek >>> a = np.array ( [ 1 , ) >>> b = np.linspace ( 0 , # egy tömb létrehozásaegyenletesen elosztott pontokkalval kezdődőenig . >>> c = a - b >>> c array ( [ 1. ,33333333,66666667 , ] ) >>> a**2 array ( [ 1 , ) Általános függvények >>> a = np.linspace ( -np.pi , np.pi , >>> b = np.sin ( a ) >>> c = np.cos ( a ) Lineáris algebra >>> from numpy.random import rand >>> from numpy.linalg import solve , inv >>> a = np.array ( [ [ 1 , , [ 3,7 ] , [ 5,0 , ] ) >>> a.transpose ( ) array ( [ [ 1. , , ] , [ 2. , , ] , [ 3.,7 , ] ] ) >>> inv ( a ) array ( [ [ -2.27683616,96045198,07909605 ] , [ 1.04519774,56497175,1299435 ] , [ 0.39548023,05649718,11299435 ] ] ) >>> b = np.array ( [ 3 , ) >>> solve ( a , b ) # ax = b egyenlet megoldása array ( [ -4.83050847,13559322,18644068 ] ) >>> c = rand ( 3 , # véletlenszerű3-as mátrix létrehozása >>> c array ( [ [ 3.98732789,47702609,71167924 ] , [ 9.24410671,5240412,6468792 ] , [ 10.38136661,44968437,17639591 ] ] ) >>> np.dot ( a , c ) # mátrix szorzás array ( [ [ 3.98732789,47702609,71167924 ] , [ 9.24410671,5240412,6468792 ] , [ 10.38136661,44968437,17639591 ] ] ) Történet A Python programozási nyelv eredetileg nem numerikus számításokra volt tervezve , de még a tervezés elején felkeltette a kutató- és mérnökközösség figyelmét . Ezértben egy matrix-sig nevű érdekcsoport alakult azzal a céllal , hogy egy tömbszámítási csomagot hozzon létre . A csoport tagjai között volt a Python fő tervezője/ fenntartója , Guido van Rossum , aki új függvényeket hozott létre a tömbszámítási feladatok megkönnyítésére . Később Jim Fulton létrehozott egy hasonló csomagot a mátrixszámításokhoz , melyet Jim Hugunin általánosított . Így jött létre a Numeric ( Numerical Python , NumPy ) . Hugunin , az MIT-n végzős diák,ben csatlakozott a CNRI-hez , hogy a JPythonon dolgozzon . Ezután a rugalmas Numarray csomag jött létre a Numeric helyett . Mára a Numarray és a Numeric is elavult . A Numarray sokkal gyorsabban dolgozott a nagy tömbökkel , de a Numericnél lassabban a kicsikkel . Ezért egy ideig mind a két csomag használatban volt , és azt alkalmazták , amelyik az adott feladatra gyorsabb volt . A Numeric utolsó változatát ( v24.2 ) novemberén , a numarrayét ( v1.5.2 ) pedig augusztusén adták ki . Egy ideig az volt a törekvés , hogy a Numeric bekerüljön a Python standard könyvtárai közé , de Guido van Rossum úgy vélte , hogy a kód már nem karbantartható eredeti formájában sem . 2005 elején a NumPy fejlesztője , Travis Oliphant egyesítette a két közösséget , ígyban a Numarray és a Numeric csomagokból – a SciPy projekt részeként – létrejött a NumPy v1.0. Hogy a SciPy csomag ne legyen túl nagy , a NumPy-t külön csomagként adták ki . Kapcsolódó szócikkek SciPy matplotlib Pandas Jegyzetek További információk A NumPy története Programozási nyelvek