Szerkesztő:DanielLingvay/próbalap
A NumPy egy kiegészítő csomag a Python programozási nyelvhez, bővebb támogatást nyújtva a nagy, többdimenziós tömbök és mátrixok használatára egy nagy magas szintű matematikai függvény könyvtárral. A NumPy előzője a Jim Hugunin és társai által létrehozott Numeric. 2005-ben Travis Oliphant létrehozta a NumPy csomagot. A NumPy nyílt forráskódú.
Korlátozások
[szerkesztés]Azok az algoritmusok melyeket nem lehet kifejezni mint vektorizált művelet általában lassabban fognak lefutni, mert az eredeti Pythonban kell 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
[szerkesztés]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ügggvé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
[szerkesztés]A Python programozási nyelv eredetileg nem numerikus számításra volt tervezve, de felkeltette a kutató és mérnök közösség figyelmét még a tervezés elején. Ezért 1995-ben egy matrix-sig nevű érdekcsoport alakult azzal a céllal, hogy egy tömb szá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 könnyebb tömb/tömbbel való számítás érdekében.[1] Később Jim Fulton létrehozott egy hasonló csomagot a mátrix/mátrixszal való számítás érdekében, melyet Jim Hugunin általánosított. Így jött létre a Numeric (Numerical Python, NumPy). [1] [2] [3]
Hugunin, a MIT-n végzős diák, [3]:10 a CNRI-hez csatlakozott, annak érdekében, hogy a JPython-on dolgozzon 1997-ben.
Ez után a "rugalmas"Numarray csomag jött létre a Numeric helyett.
[2] Ma, a Numarray és a Numeric is elavult.[4]
A Numarray sokkal gyorsabban dolgozott a nagy tömbökkel, de a Numeric-nél lassabban a kicsi tömbökkel. Ezért egy ideig mind a két csomag használatban volt, azt alkalmazva, amelyik gyorsabb volt. A Numeric utolsó változata (v24.2) 2005. november 11.-én, a numarray-é (v1.5.2) pedig 2006. augusztus 24.-én volt kiadva.[5]
Egy ideig az volt a vágy, hogy a Numeric bekerüljön a Python standard könyvtárjai közé, de Guido van Rossum (a Python írója) azt üzente, hogy a kód már nem karbantartható eredeti formájában sem.
2005 elején a NumPy fejlesztője, Travis Oliphant egyesítete a két közösséget, így egyesítették a Numarray és a Numeric csomagokat a NumPy v1.0-ba (2006).[2] Ez a SciPy projekt része volt. Annak elkerülése érdekében, hogy a nagy SciPy csomagot kelljen használni, az új csomag el volt különítve és azóta NumPy néven fut.
Lásd még
[szerkesztés]Források
[szerkesztés]- ↑ a b (2011) „Python for Scientists and Engineers”. Computing in Science and Engineering 13, 9–12. o.
- ↑ a b c Travis Oliphant (2007). „Python for Scientific Computing”. Computing in Science and Engineering.
- ↑ a b Numerical Python, 1999
- ↑ Numarray Homepage. (Hozzáférés: 2006. június 24.)
- ↑ NumPy Sourceforge Files. (Hozzáférés: 2008. március 24.)