NumPy, Python programlama dili için büyük, çok boyutlu dizileri ve matrisleri destekleyen, bu diziler üzerinde çalışacak üst düzey matematiksel işlevler ekleyen bir kitaplıktır. NumPy'nin atası Numeric, ilk olarak Jim Hugunin tarafından diğer birkaç geliştiricinin katkılarıyla oluşturuldu. 2005 yılında Travis Oliphant, Numarray'in özelliklerini kapsamlı değişikliklerle Numeric'e dahil ederek NumPy'yi yarattı.
Orijinal yazar(lar) | |
---|---|
Geliştirici(ler) | Açık kaynak |
İlk yayınlanma | 2016 | )
Güncel sürüm | 1.20.3 / 10 Mayıs 2021 | )
Programlama dili | Python, C |
İşletim sistemi | Çapraz platform yazılımı |
Lisans | BSD |
Resmî sitesi | numpy.org |
Kod deposu | https://github.com/numpy/numpy/releases |
NumPy açık kaynaklı bir yazılımdır ve birçok katkıda bulunanlara sahiptir.
Tarihçe
Python programlama dili, başlangıçta sayısal hesaplama için tasarlanmamıştı ancak erken dönemlerde bilim ve mühendislik topluluğunun dikkatini çekti. 1995 yılında, bir dizi hesaplama paketini tanımlamak amacıyla özel ilgi grubu (special interest group) matrix-sig kuruldu; üyeleri arasında, dizi hesaplamayı kolaylaştırmak için Python'un (özellikle dizin oluşturma sözdizimini) genişleten Python tasarımcısı ve sürdürücü Guido van Rossum vardı.
Bir matris paketinin bir uygulaması Jim Fulton tarafından tamamlandı, daha sonra Jim Hugunin tarafından genelleştirildi ve Numeric olarak adlandırıld. ("Sayısal Python uzantıları (Numerical Python extensions)" veya "NumPy" olarak da bilinmektedir).Massachusetts Teknoloji Enstitüsü'nde yüksek lisans öğrencisi olan Hugunin, 1997 yılında JPython üzerinde çalışmak üzere Ulusal Araştırma Girişimleri Kurumuna (en) katıldı. Diğer erken katkıda bulunanlar arasında David Ascher, Konrad Hinsen ve Travis Oliphant yer aldı.
Numeric için daha esnek bir yedek olarak Numarray adlı yeni bir paket yazıldı. Numeric gibi, o da artık kullanımdan kaldırıldı. Numarray, büyük diziler için daha hızlı işlemlere sahipti, ancak küçük dizilerde Numeric'den daha yavaştı. Bu nedenle bir süre her iki paket de farklı kullanım durumları için paralel olarak kullanıldı. Numeric'in son sürümü (v24.2) 11 Kasım 2005'te, numarray'in son sürümü (v1.5.2) ise 24 Ağustos 2006'da yayınlandı.
Numeric'i Python sokma arzusu vardı, ancak Guido van Rossum, kodun o zamanki durumunda korunamayacağına karar verdi.
2005'in başlarında, NumPy geliştiricisi Travis Oliphant, topluluğu tek bir dizi paketi etrafında birleştirmek istedi ve Numarray'in özelliklerini Numeric'e taşıdı. Bunun sonucunda 2006'da NumPy 1.0 olarak yayınlandı. Bu yeni proje SciPy'nin bir parçasıydı. Sadece bir dizi nesnesi elde etmek için büyük SciPy paketi kurmak yerine bu yeni paket ayrıldı ve NumPy olarak adlandırıldı. Python3 desteği 2011'de NumPy sürüm 1.5.0 ile eklendi.
2011'de PyPy, PyPy için NumPy API'sinin bir uygulaması üzerinde geliştirmeye başladı. NumPy ile henüz tam uyumlu değildi.
Özellikleri
NumPy, optimize etmeyen bir bayt kodu yorumlayıcısı olan Python'un CPython referans uygulamasını hedeflemektedir. Python'un bu sürümü için yazılan matematiksel algoritmalar, genellikle derlenmiş eşdeğerlerinden çok daha yavaş çalışmaktadır. NumPy, çok boyutlu diziler ve diziler üzerinde verimli çalışan işlevler ve operatörler sağlayarak yavaşlık sorununu kısmen ele alır. Bunları yapmak için NumPy kullanarak, çoğunlukla iç döngüler olmak üzere bazı kodların yeniden yazılmasını gerekmektedir.
Python'da NumPy kullanmak, her ikisi de yorumlandığından MATLAB ile karşılaştırılabilir işlevsellik sağlamaktadır. Çoğu işlem skalerler yerine diziler veya matrisler üzerinde çalıştığı sürece, her ikisi de kullanıcının hızlı programlar yazmasına izin vermektedir. Her ikisi karşılaştırıldığında, MATLAB çok sayıda ek araç kutusuna, özellikle Simulink'e sahiptir, oysa NumPy daha modern ve eksiksiz bir programlama dili olan Python ile entegredir. Ayrıca, tamamlayıcı Python paketleri mevcuttur; SciPy, daha fazla MATLAB benzeri işlevsellik ekleyen bir kütüphanedir. Ayrıca Matplotlib, MATLAB benzeri çizim işlevselliği sağlayan bir çizim paketidir. Dahili olarak, hem MATLAB hem de NumPy, verimli lineer cebir hesaplamaları için BLAS ve LAPACK'e güvenmektedir
Yaygın olarak kullanılan bilgisayarlı görü kitaplığı OpenCV'nin Python verilerini depolamak ve üzerinde çalışmak için NumPy dizilerini kullanmaktadır. Birden çok kanala sahip görüntüler basitçe üç boyutlu diziler olarak temsil edildiğinden, indeksleme, dilimleme veya diğer dizilerle maskeleme, bir görüntünün belirli piksellerine erişmenin çok etkili yollarıdır. OpenCV'de görüntüler, çıkarılan özellik noktaları, filtre çekirdekleri ve daha pek çok şey için evrensel veri yapısı olarak NumPy dizisi, programlama iş akışını ve hata ayıklamayı büyük ölçüde basitleştirmektedir.
ndarray veri yapısı
NumPy'nin temel işlevi, n-boyutlu dizi veri yapısı için "ndarray"idir. Bu diziler, bellekte adım adım görünümlerdir. Python'un yerleşik liste veri yapısının aksine, bu diziler homojen olarak yazılmaktadır. Tek bir dizinin tüm elemanları aynı tipte olmalıdır.
Bu tür diziler ayrıca C/, Cython ve Fortran uzantıları tarafından CPython yorumlayıcısına ayrılan bellek arabelleklerine, veri kopyalamaya gerek kalmadan mevcut sayısal kitaplıklarla bir dereceye kadar uyumluluk sağlayan görünümler olabilmektedir. Bu işlevsellik, bu tür kitaplıkları (özellikle BLAS ve LAPACK) saran SciPy paketi tarafından kullanılmaktadır. NumPy, bellek eşlemeli ndarray'ler için yerleşik desteğe sahiptir.
Sınırlamalar
Bir diziye giriş eklemek, Python listelerinde olduğu kadar kolay bir şekilde mümkün değildir. Dizileri genişletmek için np.pad(...)
yolu aslında istenen şekil ve dolgu değerlerine sahip yeni diziler yaratmaktadır. Ayrıca verilen diziyi yenisine kopyalar ve yeni diziyi döndürmektedir. NumPy'nin np.concatenate([a1,a2])
işlemi aslında iki diziyi birbirine bağlamaz, ancak sırayla verilen her iki dizideki girişlerle dolu yeni bir tane döndürmektedir. Bir dizinin boyutsallığını np.reshape(...)
ile yeniden şekillendirmek ancak dizideki eleman sayısı değişmediği sürece mümkündür.
Bu koşullar, NumPy'nin dizilerinin bitişik bellek arabelleklerinde görünümler olması gerektiği gerçeğinden kaynaklanmaktadır. Blaze adlı bir değiştirme paketi bu sınırlamayı aşmaya çalışmaktadır.
Vektörleştirilmiş bir işlem olarak ifade edilemeyen algoritmalar, "saf Python"da uygulanmaları gerektiğinden daha yavaş çalışmaktadır. Vektörleştirme ise bazı işlemlerin bellek karmaşıklığını sabitten doğrusala yükseltebilmektedir. Çünkü girdiler kadar büyük olan geçici diziler oluşturulmalıdır. Sayısal kodun çalışma zamanı derlemesi, bu sorunlardan kaçınmak için birkaç grup tarafından uygulanmıştır. NumPy ile birlikte çalışan açık kaynaklı çözümler arasında scipy.weave
, numepr ve Numba bulunmaktadır. Cython ve Pythran bunlara statik derleme alternatifleridir.
Birçok modern büyük ölçekli bilimsel hesaplama uygulamasının, NumPy dizilerinin yeteneklerini aşan gereksinimleri vardır. Örneğin, NumPy dizileri genellikle büyük veri kümelerinin analizi için yetersiz kapasiteye sahip olabilecek bir bilgisayarın belleğine yüklenmektedir. Ayrıca NumPy işlemleri tek bir CPU üzerinde yürütülmektedir. Bununla birlikte, birçok doğrusal cebir işlemi, CPU kümelerinde veya birçok derin öğrenme uygulamasının güvendiği GPU'lar ve TPU'lar gibi özel donanımlarda yürütülerek hızlandırılabilmektedir.
Sonuç olarak, son yıllarda bilimsel Python ekosisteminde dağıtılmış diziler için Dask ve GPU'lardaki hesaplamalar için TensorFlow veya JAX gibi çeşitli alternatif dizi uygulamaları ortaya çıkmıştır. Popülaritesi nedeniyle, bunlar genellikle Numpy'nin API'sinin bir alt kümesini uygulamaktadır veya onu taklit etmektedir. Böylece kullanıcılar kodlarında gereken minimum değişiklikle dizi uygulamalarını değiştirebilmektedir. Nvidia'nın CUDA çerçevesi tarafından hızlandırılan ve yakın zamanda tanıtılan CUPy adlı bir kitaplık, NumPy'nin 'açılan bir ikamesi' olarak daha hızlı bilgi işlem potansiyeli göstermiştir.
Örnekler
Dizi(Array) oluşturma
import numpy as np x = np.array([1, 2, 3]) print(x) #array([1, 2, 3]) y = np.arange(10) print(y) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Basit operatörler
a = np.array([1, 2, 3, 6]) b = np.linspace(0, 2, 4) c = a - b print(c) #array([ 1., 1.33333333, 1.66666667, 4.]) print(a**2) #array([ 1, 4, 9, 36])
Evrensel fonksiyonlar
a = np.linspace(-np.pi, np.pi, 100) b = np.sin(a) c = np.cos(a)
Lineer cebir
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() print(a) #array([[ 1. , 3. , 5. ], # [ 2. , 4. , 9. ], # [ 3. , 6.7, 5. ]]) print(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]) print(solve(a, b)) # ax = b denklemini çöz #array([-4.83050847, 2.13559322, 1.18644068]) c = rand(3, 3) * 20 # 20 ile ölçeklenmiş [0,1] içinde 3x3 rastgele değerler matrisi oluşturun print(c) #array([[ 3.98732789, 2.47702609, 4.71167924], # [ 9.24410671, 5.5240412 , 10.6468792 ], # [ 10.38136661, 8.44968437, 15.17639591]]) print(np.dot(a, c)) # matris çarpımı #array([[ 53.61964114, 38.8741616 , 71.53462537], # [ 118.4935668 , 86.14012835, 158.40440712], # [ 155.04043289, 104.3499231 , 195.26228855]])
Tensörler
M = np.zeros(shape=(2, 3, 5, 7, 11)) T = np.transpose(M, (4, 2, 1, 3, 0)) print(T.shape) #(11, 5, 3, 7, 2)
Kaynakça
- ^ . 15 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Şubat 2021 – GitHub vasıtasıyla.
- ^ Harris, Charles R.; Millman, K. Jarrod; van der Walt, Stéfan J.; Gommers, Ralf; Virtanen, Pauli; Cournapeau, David; Wieser, Eric; Taylor, Julian; Berg, Sebastian; Smith, Nathaniel J.; Kern, Robert (17 Eylül 2020). "Array programming with NumPy". Nature (İngilizce). 585 (7825): 357-362. doi:10.1038/s41586-020-2649-2. ISSN 0028-0836. 26 Mayıs 2021 tarihinde kaynağından . Erişim tarihi: 11 Haziran 2021.
- ^ Singh, Ajit (20 Ocak 2021). "Review of "Array programming with NumPy"". doi:10.14293/s2199-1006.1.sor-uncat.a7759461.v1.raugfi.
- ^ a b Millman, K. Jarrod; Aivazis, Michael (2011). "Python for Scientists and Engineers". Computing in Science and Engineering. 13 (2): 9–12. Bibcode:2011CSE....13b...9M. doi:10.1109/MCSE.2011.36. Archived from the original on 2019-02-19. Retrieved 2014-07-07.
- ^ Oliphant, Travis E. (2007). "Python for Scientific Computing". Computing in Science & Engineering. 9 (3): 10-20. doi:10.1109/mcse.2007.58. ISSN 1521-9615.
- ^ a b c Dubois, Paul F.; Hinsen, Konrad; Hugunin, James (1996). "Numerical Python". Computers in Physics. 10 (3): 262. doi:10.1063/1.4822400. ISSN 0894-1866.
- ^ a b c d van der Walt, Stéfan; Colbert, S. Chris; Varoquaux, Gaël (2011). "The NumPy array: a structure for efficient numerical computation". Computing in Science and Engineering. IEEE. 13 (2): 22. arXiv:1102.1523. Bibcode:2011CSE....13b..22V. doi:10.1109/MCSE.2011.37. S2CID 16907816.
- ^ a b "Numarray Homepage". Retrieved 2006-06-24.
- ^ Travis Oliphant and other SciPy developers. "[Numpy-discussion] Status of Numeric". Retrieved 2 February 2017.
- ^ "NumPy Sourceforge Files". Retrieved 2008-03-24.
- ^ "History_of_SciPy - SciPy wiki dump". scipy.github.io.
- ^ "NumPy 1.5.0 Release Notes". Retrieved 2011-04-29.
- ^ a b "PyPy Status Blog: NumPy funding and status update". Retrieved 2011-12-22.
- ^ The SciPy Community. "NumPy for Matlab users". Retrieved 2 February 2017.
- ^ "Blaze Ecosystem Docs". Read the Docs. Retrieved 17 July 2016.
- ^ Francesc Alted. "numexpr". Retrieved 8 March 2014.
- ^ "Numba". Retrieved 8 March 2014.
- ^ Charles R Harris; K. Jarrod Millman; Stéfan J. van der Walt; et al. (16 September 2020). "Array programming with NumPy" (PDF). Nature. 585 (7825): 357–362. doi:10.1038/S41586-020-2649-2. ISSN 1476-4687. PMC 7759461. PMID 32939066. Wikidata Q99413970.
- ^ Shohei Hido - CuPy: A NumPy-compatible Library for GPU - PyCon 2018, retrieved 2021-05-11
- ^ Entschev, Peter Andreas (2019-07-23). "Single-GPU CuPy Speedups". Medium. Retrieved 2021-05-11.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
NumPy Python programlama dili icin buyuk cok boyutlu dizileri ve matrisleri destekleyen bu diziler uzerinde calisacak ust duzey matematiksel islevler ekleyen bir kitapliktir NumPy nin atasi Numeric ilk olarak Jim Hugunin tarafindan diger birkac gelistiricinin katkilariyla olusturuldu 2005 yilinda Travis Oliphant Numarray in ozelliklerini kapsamli degisikliklerle Numeric e dahil ederek NumPy yi yaratti NumPyOrijinal yazar lar Gelistirici ler Acik kaynakIlk yayinlanma2016 8 yil once 2016 Guncel surum1 20 3 10 Mayis 2021 3 yil once 2021 05 10 Programlama diliPython CIsletim sistemiCapraz platform yazilimiLisansBSDResmi sitesinumpy orgKod deposuhttps github com numpy numpy releases NumPy acik kaynakli bir yazilimdir ve bircok katkida bulunanlara sahiptir TarihcePython programlama dili baslangicta sayisal hesaplama icin tasarlanmamisti ancak erken donemlerde bilim ve muhendislik toplulugunun dikkatini cekti 1995 yilinda bir dizi hesaplama paketini tanimlamak amaciyla ozel ilgi grubu special interest group matrix sig kuruldu uyeleri arasinda dizi hesaplamayi kolaylastirmak icin Python un ozellikle dizin olusturma sozdizimini genisleten Python tasarimcisi ve surdurucu Guido van Rossum vardi Bir matris paketinin bir uygulamasi Jim Fulton tarafindan tamamlandi daha sonra Jim Hugunin tarafindan genellestirildi ve Numeric olarak adlandirild Sayisal Python uzantilari Numerical Python extensions veya NumPy olarak da bilinmektedir Massachusetts Teknoloji Enstitusu nde yuksek lisans ogrencisi olan Hugunin 1997 yilinda JPython uzerinde calismak uzere Ulusal Arastirma Girisimleri Kurumuna en katildi Diger erken katkida bulunanlar arasinda David Ascher Konrad Hinsen ve Travis Oliphant yer aldi Numeric icin daha esnek bir yedek olarak Numarray adli yeni bir paket yazildi Numeric gibi o da artik kullanimdan kaldirildi Numarray buyuk diziler icin daha hizli islemlere sahipti ancak kucuk dizilerde Numeric den daha yavasti Bu nedenle bir sure her iki paket de farkli kullanim durumlari icin paralel olarak kullanildi Numeric in son surumu v24 2 11 Kasim 2005 te numarray in son surumu v1 5 2 ise 24 Agustos 2006 da yayinlandi Numeric i Python sokma arzusu vardi ancak Guido van Rossum kodun o zamanki durumunda korunamayacagina karar verdi 2005 in baslarinda NumPy gelistiricisi Travis Oliphant toplulugu tek bir dizi paketi etrafinda birlestirmek istedi ve Numarray in ozelliklerini Numeric e tasidi Bunun sonucunda 2006 da NumPy 1 0 olarak yayinlandi Bu yeni proje SciPy nin bir parcasiydi Sadece bir dizi nesnesi elde etmek icin buyuk SciPy paketi kurmak yerine bu yeni paket ayrildi ve NumPy olarak adlandirildi Python3 destegi 2011 de NumPy surum 1 5 0 ile eklendi 2011 de PyPy PyPy icin NumPy API sinin bir uygulamasi uzerinde gelistirmeye basladi NumPy ile henuz tam uyumlu degildi OzellikleriNumPy optimize etmeyen bir bayt kodu yorumlayicisi olan Python un CPython referans uygulamasini hedeflemektedir Python un bu surumu icin yazilan matematiksel algoritmalar genellikle derlenmis esdegerlerinden cok daha yavas calismaktadir NumPy cok boyutlu diziler ve diziler uzerinde verimli calisan islevler ve operatorler saglayarak yavaslik sorununu kismen ele alir Bunlari yapmak icin NumPy kullanarak cogunlukla ic donguler olmak uzere bazi kodlarin yeniden yazilmasini gerekmektedir Python da NumPy kullanmak her ikisi de yorumlandigindan MATLAB ile karsilastirilabilir islevsellik saglamaktadir Cogu islem skalerler yerine diziler veya matrisler uzerinde calistigi surece her ikisi de kullanicinin hizli programlar yazmasina izin vermektedir Her ikisi karsilastirildiginda MATLAB cok sayida ek arac kutusuna ozellikle Simulink e sahiptir oysa NumPy daha modern ve eksiksiz bir programlama dili olan Python ile entegredir Ayrica tamamlayici Python paketleri mevcuttur SciPy daha fazla MATLAB benzeri islevsellik ekleyen bir kutuphanedir Ayrica Matplotlib MATLAB benzeri cizim islevselligi saglayan bir cizim paketidir Dahili olarak hem MATLAB hem de NumPy verimli lineer cebir hesaplamalari icin BLAS ve LAPACK e guvenmektedir Yaygin olarak kullanilan bilgisayarli goru kitapligi OpenCV nin Python verilerini depolamak ve uzerinde calismak icin NumPy dizilerini kullanmaktadir Birden cok kanala sahip goruntuler basitce uc boyutlu diziler olarak temsil edildiginden indeksleme dilimleme veya diger dizilerle maskeleme bir goruntunun belirli piksellerine erismenin cok etkili yollaridir OpenCV de goruntuler cikarilan ozellik noktalari filtre cekirdekleri ve daha pek cok sey icin evrensel veri yapisi olarak NumPy dizisi programlama is akisini ve hata ayiklamayi buyuk olcude basitlestirmektedir ndarray veri yapisi NumPy nin temel islevi n boyutlu dizi veri yapisi icin ndarray idir Bu diziler bellekte adim adim gorunumlerdir Python un yerlesik liste veri yapisinin aksine bu diziler homojen olarak yazilmaktadir Tek bir dizinin tum elemanlari ayni tipte olmalidir Bu tur diziler ayrica C C Cython ve Fortran uzantilari tarafindan CPython yorumlayicisina ayrilan bellek arabelleklerine veri kopyalamaya gerek kalmadan mevcut sayisal kitapliklarla bir dereceye kadar uyumluluk saglayan gorunumler olabilmektedir Bu islevsellik bu tur kitapliklari ozellikle BLAS ve LAPACK saran SciPy paketi tarafindan kullanilmaktadir NumPy bellek eslemeli ndarray ler icin yerlesik destege sahiptir Sinirlamalar Bir diziye giris eklemek Python listelerinde oldugu kadar kolay bir sekilde mumkun degildir Dizileri genisletmek icin np pad yolu aslinda istenen sekil ve dolgu degerlerine sahip yeni diziler yaratmaktadir Ayrica verilen diziyi yenisine kopyalar ve yeni diziyi dondurmektedir NumPy nin np concatenate a1 a2 islemi aslinda iki diziyi birbirine baglamaz ancak sirayla verilen her iki dizideki girislerle dolu yeni bir tane dondurmektedir Bir dizinin boyutsalligini np reshape ile yeniden sekillendirmek ancak dizideki eleman sayisi degismedigi surece mumkundur Bu kosullar NumPy nin dizilerinin bitisik bellek arabelleklerinde gorunumler olmasi gerektigi gerceginden kaynaklanmaktadir Blaze adli bir degistirme paketi bu sinirlamayi asmaya calismaktadir Vektorlestirilmis bir islem olarak ifade edilemeyen algoritmalar saf Python da uygulanmalari gerektiginden daha yavas calismaktadir Vektorlestirme ise bazi islemlerin bellek karmasikligini sabitten dogrusala yukseltebilmektedir Cunku girdiler kadar buyuk olan gecici diziler olusturulmalidir Sayisal kodun calisma zamani derlemesi bu sorunlardan kacinmak icin birkac grup tarafindan uygulanmistir NumPy ile birlikte calisan acik kaynakli cozumler arasinda scipy weave numepr ve Numba bulunmaktadir Cython ve Pythran bunlara statik derleme alternatifleridir Bircok modern buyuk olcekli bilimsel hesaplama uygulamasinin NumPy dizilerinin yeteneklerini asan gereksinimleri vardir Ornegin NumPy dizileri genellikle buyuk veri kumelerinin analizi icin yetersiz kapasiteye sahip olabilecek bir bilgisayarin bellegine yuklenmektedir Ayrica NumPy islemleri tek bir CPU uzerinde yurutulmektedir Bununla birlikte bircok dogrusal cebir islemi CPU kumelerinde veya bircok derin ogrenme uygulamasinin guvendigi GPU lar ve TPU lar gibi ozel donanimlarda yurutulerek hizlandirilabilmektedir Sonuc olarak son yillarda bilimsel Python ekosisteminde dagitilmis diziler icin Dask ve GPU lardaki hesaplamalar icin TensorFlow veya JAX gibi cesitli alternatif dizi uygulamalari ortaya cikmistir Popularitesi nedeniyle bunlar genellikle Numpy nin API sinin bir alt kumesini uygulamaktadir veya onu taklit etmektedir Boylece kullanicilar kodlarinda gereken minimum degisiklikle dizi uygulamalarini degistirebilmektedir Nvidia nin CUDA cercevesi tarafindan hizlandirilan ve yakin zamanda tanitilan CUPy adli bir kitaplik NumPy nin acilan bir ikamesi olarak daha hizli bilgi islem potansiyeli gostermistir OrneklerDizi Array olusturma import numpy as np x np array 1 2 3 print x array 1 2 3 y np arange 10 print y array 0 1 2 3 4 5 6 7 8 9 Basit operatorler a np array 1 2 3 6 b np linspace 0 2 4 c a b print c array 1 1 33333333 1 66666667 4 print a 2 array 1 4 9 36 Evrensel fonksiyonlar a np linspace np pi np pi 100 b np sin a c np cos a Lineer cebir 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 print a array 1 3 5 2 4 9 3 6 7 5 print 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 print solve a b ax b denklemini coz array 4 83050847 2 13559322 1 18644068 c rand 3 3 20 20 ile olceklenmis 0 1 icinde 3x3 rastgele degerler matrisi olusturun print c array 3 98732789 2 47702609 4 71167924 9 24410671 5 5240412 10 6468792 10 38136661 8 44968437 15 17639591 print np dot a c matris carpimi array 53 61964114 38 8741616 71 53462537 118 4935668 86 14012835 158 40440712 155 04043289 104 3499231 195 26228855 Tensorler M np zeros shape 2 3 5 7 11 T np transpose M 4 2 1 3 0 print T shape 11 5 3 7 2 Kaynakca 15 Eylul 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 8 Subat 2021 GitHub vasitasiyla Harris Charles R Millman K Jarrod van der Walt Stefan J Gommers Ralf Virtanen Pauli Cournapeau David Wieser Eric Taylor Julian Berg Sebastian Smith Nathaniel J Kern Robert 17 Eylul 2020 Array programming with NumPy Nature Ingilizce 585 7825 357 362 doi 10 1038 s41586 020 2649 2 ISSN 0028 0836 26 Mayis 2021 tarihinde kaynagindan Erisim tarihi 11 Haziran 2021 Singh Ajit 20 Ocak 2021 Review of Array programming with NumPy doi 10 14293 s2199 1006 1 sor uncat a7759461 v1 raugfi a b Millman K Jarrod Aivazis Michael 2011 Python for Scientists and Engineers Computing in Science and Engineering 13 2 9 12 Bibcode 2011CSE 13b 9M doi 10 1109 MCSE 2011 36 Archived from the original on 2019 02 19 Retrieved 2014 07 07 Oliphant Travis E 2007 Python for Scientific Computing Computing in Science amp Engineering 9 3 10 20 doi 10 1109 mcse 2007 58 ISSN 1521 9615 a b c Dubois Paul F Hinsen Konrad Hugunin James 1996 Numerical Python Computers in Physics 10 3 262 doi 10 1063 1 4822400 ISSN 0894 1866 a b c d van der Walt Stefan Colbert S Chris Varoquaux Gael 2011 The NumPy array a structure for efficient numerical computation Computing in Science and Engineering IEEE 13 2 22 arXiv 1102 1523 Bibcode 2011CSE 13b 22V doi 10 1109 MCSE 2011 37 S2CID 16907816 a b Numarray Homepage Retrieved 2006 06 24 Travis Oliphant and other SciPy developers Numpy discussion Status of Numeric Retrieved 2 February 2017 NumPy Sourceforge Files Retrieved 2008 03 24 History of SciPy SciPy wiki dump scipy github io NumPy 1 5 0 Release Notes Retrieved 2011 04 29 a b PyPy Status Blog NumPy funding and status update Retrieved 2011 12 22 The SciPy Community NumPy for Matlab users Retrieved 2 February 2017 Blaze Ecosystem Docs Read the Docs Retrieved 17 July 2016 Francesc Alted numexpr Retrieved 8 March 2014 Numba Retrieved 8 March 2014 Charles R Harris K Jarrod Millman Stefan J van der Walt et al 16 September 2020 Array programming with NumPy PDF Nature 585 7825 357 362 doi 10 1038 S41586 020 2649 2 ISSN 1476 4687 PMC 7759461 PMID 32939066 Wikidata Q99413970 Shohei Hido CuPy A NumPy compatible Library for GPU PyCon 2018 retrieved 2021 05 11 Entschev Peter Andreas 2019 07 23 Single GPU CuPy Speedups Medium Retrieved 2021 05 11