Reja: NumPy nima?


Download 30.64 Kb.
bet1/4
Sana03.05.2023
Hajmi30.64 Kb.
#1423413
  1   2   3   4
Bog'liq
Dasturiy injenering 1


911-20-guruh talabasi
O`ralov Muslimbekning Dasturiy injenering
Fanidan Mustaqil ishi
Numpy ma`lumot turlari
Reja:
1. NumPy nima?
2.Numpy element qo`shish
3.Numpyda qidirish, filtrlash va saralash

NumPy nima?
NumPy Pythonda ilmiy hisoblashlar uchun asosiy paketdir. Bu Python kutubxonasi boʻlib, u koʻp oʻlchovli massiv obyekti, turli hosila obʼyektlari (masalan, niqoblangan massivlar va matritsalar) hamda massivlar ustida tezkor operatsiyalar, jumladan, matematik, mantiqiy, shakllarni manipulyatsiya qilish, saralash, tanlash, kiritish/chiqarish uchun tartiblar assortimentini taqdim etadi. , diskret Furye o'zgarishlari, asosiy chiziqli algebra, asosiy statistik operatsiyalar, tasodifiy simulyatsiya va boshqalar.
NumPy paketining o'zagida ndarray ob'ekti joylashgan. Bu bir hil ma'lumotlar turlarining n o'lchovli massivlarini qamrab oladi, ko'plab operatsiyalar ishlash uchun kompilyatsiya qilingan kodda amalga oshiriladi. NumPy massivlari va standart Python ketma-ketliklari o'rtasida bir nechta muhim farqlar mavjud:
NumPy massivlari Python ro'yxatlaridan farqli o'laroq (dinamik ravishda o'sishi mumkin) yaratilayotganda qat'iy belgilangan hajmga ega. Ndarray o'lchamini o'zgartirish yangi massivni yaratadi va asl nusxasini o'chiradi.
NumPy massividagi elementlarning barchasi bir xil turdagi ma'lumotlarga ega bo'lishi kerak va shuning uchun xotirada bir xil o'lchamda bo'ladi. Istisno: (Python, shu jumladan NumPy) ob'ektlar massivlariga ega bo'lishi mumkin, bu esa turli o'lchamdagi elementlarning massivlarini yaratishga imkon beradi.
NumPy massivlari katta miqdordagi ma'lumotlar bilan ilg'or matematik va boshqa turdagi operatsiyalarni osonlashtiradi. Odatda, bunday operatsiyalar Python-ning o'rnatilgan ketma-ketliklaridan foydalanish mumkin bo'lganidan ko'ra samaraliroq va kamroq kod bilan amalga oshiriladi.
Python-ga asoslangan ilmiy va matematik paketlarning ko'pligi NumPy massivlaridan foydalanmoqda; Ular odatda Python-ketma-ket kiritishni qo'llab-quvvatlasa ham, ular qayta ishlashdan oldin bunday kirishni NumPy massivlariga aylantiradi va ko'pincha NumPy massivlarini chiqaradi. Boshqacha qilib aytganda, Python-ga asoslangan bugungi ilmiy/matematik dasturiy ta'minotning ko'p qismini (ehtimol ko'pini) samarali ishlatish uchun Python-ning o'rnatilgan ketma-ketlik turlaridan qanday foydalanishni bilishning o'zi etarli emas - NumPy massivlaridan qanday foydalanishni ham bilish kerak.
Ilmiy hisoblashda ketma-ketlik hajmi va tezligi haqidagi fikrlar ayniqsa muhimdir. Oddiy misol sifatida, 1-D ketma-ketlikdagi har bir elementni bir xil uzunlikdagi boshqa ketma-ketlikdagi mos keladigan element bilan ko'paytirish holatini ko'rib chiqing. Agar ma'lumotlar ikkita Python ro'yxatida saqlangan bo'lsa, a va b, biz har bir elementni takrorlashimiz mumkin:

c = []
diapazondagi i uchun (len(a)):


c.ilova(a[i]*b[i])
Bu to'g'ri javobni beradi, lekin agar a va b har biri millionlab raqamlarni o'z ichiga olsa, biz Python'da aylanish samarasizligi uchun to'lovni to'laymiz. Xuddi shu vazifani C tilida yozish orqali tezroq bajarishimiz mumkin (aniqlik uchun biz o'zgaruvchan deklaratsiyalar va ishga tushirishlarni, xotirani ajratishni va hokazolarni e'tiborsiz qoldiramiz).

uchun (i = 0; i < qatorlar; i++) {


c[i] = a[i]*b[i];
}
Bu Python kodini sharhlash va Python obyektlarini manipulyatsiya qilish bilan bog'liq barcha xarajatlarni tejaydi, lekin Pythonda kodlashdan olingan foyda hisobiga. Bundan tashqari, talab qilinadigan kodlash ishi ma'lumotlarimizning o'lchamlari bilan ortadi. Masalan, 2D massivda C kodi (avvalgidek qisqartirilgan) kengayadi.

uchun (i = 0; i < qatorlar; i++) {


uchun (j = 0; j < ustunlar; j++) {
c[i][j] = a[i][j]*b[i][j];
}
}
NumPy bizga har ikki dunyoning eng yaxshisini beradi: ndarray ishtirok etganda element bo'yicha operatsiyalar "standart rejim" bo'ladi, lekin element bo'yicha operatsiya oldindan tuzilgan C kodi orqali tez bajariladi. NumPy ichida

c = a * b


oldingi misollar bajaradigan ishni C darajasiga yaqin tezlikda bajaradi, lekin kodning soddaligi bilan biz Python-ga asoslangan narsadan kutamiz. Darhaqiqat, NumPy idiomasi yanada sodda! Ushbu so'nggi misol NumPy-ning ko'p quvvatining asosi bo'lgan ikkita xususiyatini ko'rsatadi: vektorizatsiya va eshittirish.



Download 30.64 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling