SciPy
Numpy yuqori samarali ko'p o'lchovli massivlar va ushbu massivlar bilan hisoblash va ularni boshqarish uchun asosiy vositalarni taqdim etadi. SciPy numpy massivlariga asoslanadi va turli xil ilmiy va muhandislik ilovalari uchun foydali bo'lgan ko'plab funksiyalarni taqdim etadi.
SciPy bilan tanishishning eng yaxshi usuli hujjatlarni ko'rib chiqishdir. Hozirda esa biz uchun foydali bo'lishi mumkin bo'lgan SciPy'ning ba'zi qismlarini qarab chiqamiz.
Rasm operatsiyalari
SciPy tasvirlar bilan ishlash uchun ba'zi asosiy funksiyalarni taqdim etadi. Masalan, tasvirlarni numpy massivlarga o'qish, numpy massivlarni tasvir sifatida yozish va tasvir hajmini o'zgartirish funksiyalariga ega. Mana bu funksiyalarni ko'rsatadigan oddiy misol:
from scipy.misc import imread, imsave, imresize
# JPEG suratni numpy massivga o'qib olish
img = imread('assets/cat.jpg')
print(img.dtype, img.shape) # Prints "uint8 (400, 248, 3)"
# Rang kanallarining har birini boshqa skalyar konstanta bilan masshtablash orqali tasvirni ranglashimiz mumkin;
# Tasvirning (400, 248, 3) shakli bor;
# Uni (3,) shakldagi [1, 0,95, 0,9] massivga ko'paytiramiz;
# numpy broadcasting - bu qizil kanalni o'zgarishsiz qoldirishini anglatadi va yashil va ko'k kanallarni mos ravishda 0,95 va 0,9 ga ko'paytiradi.
img_tinted = img * [1, 0.95, 0.9]
# Rangli tasvirni 300x300 px holatiga keltirish
img_tinted = imresize(img_tinted, (300, 300))
# Rangli tasvirni xotiraga saqlash
imsave('assets/cat_tinted.jpg', img_tinted)
Tepada: asl rasm. Pastda: ranglangan va o'lchami o'zgartirilgan rasm.
MATLAB fayllari
scipy.io.loadmat
va scipy.io.savemat
funktsiyalari sizga MATLAB fayllarini o'qish va yozish imkonini beradi. Ular haqida batafsil hujjatlarda o'qishingiz mumkin.
Nuqtalar orasidagi masofa
SciPy nuqtalar to'plami orasidagi masofani hisoblash uchun ba'zi foydali funktsiyalarni taqdim etadi.
scipy.spatial.distance.pdist
funksiyasi berilgan to'plamdagi barcha (x, y) nuqtalar orasidagi masofani hisoblaydi:
Ushbu funksiya haqida barcha tafsilotlarni hujjatlarda o'qishingiz mumkin .
Shunga o'xshash funksiya (scipy.spatial.distance.cdist
) ikkita nuqta to'plamidagi barcha juftliklar orasidagi masofani hisoblaydi, bu haqda hujjatlarda o'qishingiz mumkin .
Matplotlib
Matplotlib - bu chizmachilik kutubxonasi. Ushbu bo'limda matplotlib.pyplot
MATLAB ga o'xshash chizma tizimini taqdim etadigan modul haqida qisqacha ma'lumot beriladi.
Syujet tuzish
Matplotlib'dagi eng muhim funksiya bu plot2D
ma'lumotlarni chizish imkonini beradi. Mana oddiy misol:
import numpy as np
import matplotlib.pyplot as plt
# Sinus egri chiziqdagi nuqtalar uchun x va y koordinatalarini hisoblash
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
# Matplotlib yordamida nuqtalarni ifodalash
plt.plot(x, y)
plt.show() # Grafiklar paydo bo'lishi uchun plt.show() ga murojaat qilishingiz kerak.
Ushbu kodni ishga tushirish quyidagi chizma hosil qiladi:
Bir oz qo'shimcha ish bilan biz bir vaqtning o'zida bir nechta satrlarni osongina chizishimiz, sarlavha va koordinata o'qlarining nomlarini qo'shishimiz mumkin:
import numpy as np
import matplotlib.pyplot as plt
# Sinus va kosinus egri chiziqlaridagi nuqtalar uchun x va y koordinatalarini hisoblash
x = np.arange(0, 3 * np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# Matplotlib yordamida nuqtalarni chizish
plt.plot(x, y_sin)
plt.plot(x, y_cos)
plt.xlabel('x axis label')
plt.ylabel('y axis label')
plt.title('Sine and Cosine')
plt.legend(['Sine', 'Cosine'])
plt.show()
Tasvirlar
Rasmlarni ko'rsatish uchun imshow
funksiyasidan foydalanishingiz mumkin . Mana bir misol:
import numpy as np
from scipy.misc import imread, imresize
import matplotlib.pyplot as plt
img = imread('assets/cat.jpg')
img_tinted = img * [1, 0.95, 0.9]
# Original suratni chiqarish
plt.subplot(1, 2, 1)
plt.imshow(img)
# Ranglangan suratni chiqarish
plt.subplot(1, 2, 2)
# tasvirni ko'rsatishdan oldin uni uint8 ga konvert qilamiz
plt.imshow(np.uint8(img_tinted))
plt.show()
Top comments (0)