NumPy — Travis Oliphant tomonidan 2005-yilda taqdim etilgan, Python uchun sonli hisoblash kutubxonasi. U o’sha davrda mavjud bo’lgan ikkita raqobatdosh kutubxona — Numeric va Numarray’ni birlashtirish natijasida yaratilgan.
Numeric va Numarray loyihalarini birlashtirishi
2000-yillar boshida Python ilmiy hisoblash hamjamiyati ikkita bir-biriga o’xshash, ammo mos kelmaydigan massiv kutubxonasiga bo’lingan edi — bu holat ekotizimni parchalab yuborgan. Oliphant ikkalasining eng yaxshi xususiyatlarini birlashtirib, yagona NumPy kutubxonasini yaratdi, bu esa Python ilmiy hisoblash hamjamiyatini qayta birlashtirdi.
Ko’p o’lchamli massiv tuzilishi
NumPy’ning markazida ndarray — ko’p o’lchamli, bir xil turdagi elementlardan tashkil topgan massiv tuzilmasi yotadi. Bu tuzilma Python‘ning standart ro’yxatlaridan farqli o’laroq, xotirada zich va tartibli joylashadi, bu esa matematik amallarni sezilarli tezroq bajarish imkonini beradi.
Vektorlashtirilgan hisoblash tezligi
NumPy’ning tezligi asosan uning ichki qismi C tilida yozilganidan va “vektorlashtirilgan” amallardan kelib chiqadi — butun massiv ustida amalni Python siklisiz, bitta buyruq bilan bajarish mumkin. Bu yondashuv, ayniqsa katta massivlar bilan ishlashda, oddiy Python siklidan o’nlab yoki yuzlab marta tezroq natija beradi.
Python ilmiy ekotizimining poydevori
NumPy Python‘ning butun ilmiy hisoblash ekotizimining asosiy qatlami hisoblanadi — Pandas, Scikit-learn, TensorFlow va deyarli barcha boshqa ma’lumotlar fani kutubxonalari o’z ichida NumPy massivlaridan foydalanadi yoki ular bilan mos ishlaydi. Shu sababli NumPy’ni bilish Python‘da ilmiy dasturlashning zaruriy asosi hisoblanadi.
Boshqa kutubxonalarga ta’siri
NumPy’ning massiv interfeysi shu qadar keng qabul qilinganki, u boshqa tillar va kutubxonalar uchun ham dizayn andozasi bo’lib xizmat qilgan — masalan, PyTorch va TensorFlow‘ning tensor tuzilmalari ko’p jihatdan NumPy’ning API‘siga o’xshash qilib loyihalashtirilgan, bu esa dasturchilarga bir tizimdan boshqasiga o’tishni osonlashtiradi.
Bog’liq tushunchalar
Travis Oliphant, Python, Massiv, SciPy, Pandas, Ilmiy hisoblash, Scikit-learn