Yayınlama ve Vektörleştirilmiş İşlemler
Yayınlamanın nasıl çalıştığı, elemana göre işlemler ve vektörleştirmeyle döngülerden kaçınma.
Yayınlama ve Vektörleştirilmiş İşlemler, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Neden Vektörleştirme?
NumPy, tüm diziler üzerinde C hızında çalışır. Python döngülerini vektörleştirme adı verilen dizi ifadeleriyle değiştirmek çoğu zaman 10 ila 100 kat daha hızlıdır.
Eleman Bazında İşlemler
Aritmetik işleçler, şekiller eşleştiğinde eleman bazında uygulanır. Döngü gerekmez.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
print(a + b) # [11 22 33]
print(a * b) # [10 40 90]Skaler Yayma
Bir dizi ile skaler arasındaki işlem, skaları her elemana uygular. Skaler dizi boyunca "yayılır".
a = np.array([1, 2, 3, 4])
print(a * 10) # [10 20 30 40]
print(a + 100) # [101 102 103 104]Yayma Nedir?
Yayma, NumPy'nin farklı şekillere sahip dizileri, küçük olanı belleği kopyalamadan sanal olarak uzatarak birleştirmesini sağlar.
Yayma Kuralı
Şekilleri sondaki (en sağdaki) boyuttan başlayarak karşılaştırın. İki boyut, eşit olduklarında veya birinin değeri 1 olduğunda uyumludur. Boyutu 1 olan boyut, eşleşecek şekilde genişler.
# (3, 4) with (4,) -> compatible (trailing 4 matches)
# (3, 4) with (3, 1) -> compatible (1 stretches to 4)
# (3, 4) with (3,) -> ERROR (trailing 4 vs 3)Satır Vektörünün Yayılması
Uzunluğu sütun sayısına eşit olan 1B dizi, her satıra eklenir.
m = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([10, 20, 30])
print(m + row)
# [[11 22 33]
# [14 25 36]]Sütun Vektörünün Yayılması
Bir vektörü sütun biçimine (shape (n,1)) yeniden şekillendirerek satırlar yerine sütunlar boyunca yayılmasını sağlayın.
col = np.array([[100], [200]]) # shape (2, 1)
print(m + col)
# [[101 102 103]
# [204 205 206]]Verileri Merkezleme (Gerçek Kullanım)
Sütun bazında ortalamayı çıkarmak, her özelliği merkezler; bu, tek bir yayma satırında gerçekleştirilen yaygın bir ön işleme adımıdır.
data = np.array([[1.0, 10.0], [2.0, 20.0], [3.0, 30.0]])
centered = data - data.mean(axis=0)
print(centered)
# columns now have mean 0Evrensel İşlevler (ufunc'ler)
NumPy, ufunc'ler adı verilen hızlı eleman bazında matematik işlevleriyle birlikte gelir: np.sqrt, np.log, np.exp ve daha fazlası. Bunlar vektörleştirilmiştir ve yaymanın farkındadır.
a = np.array([1.0, 4.0, 9.0, 16.0])
print(np.sqrt(a)) # [1. 2. 3. 4.]
print(np.log(a)) # natural log of each element
print(np.exp([0, 1])) # [1. 2.71828183]Döngü ve Vektörleştirilmiş İşlem Hızı
Aynı hesaplama vektörleştirildiğinde çok daha hızlıdır. Bir milyon eleman üzerindeki farkı görmek için %timeit kullanın.
big = np.arange(1000000, dtype=float)
# Slow Python loop:
# %timeit [x*x for x in big]
# Fast vectorized:
%timeit big * big # typically tens of times fasterVektörleştirilmiş İşlemleri Birleştirme
Formülleri doğrudan ifade etmek için ufunc'leri ve aritmetik işlemleri zincirleyin. Bu işlem, hiç döngü kullanmadan bir Gauss eğrisi hesaplar.
x = np.linspace(-3, 3, 7)
y = np.exp(-x**2 / 2)
print(np.round(y, 3))Kısa Sınama
Yayma konusundaki anlayışınızı sınayın.
Özet
Vektörleştirmenin temelleri:
- Eleman bazında işlemler Python döngülerini önler ve C hızında çalışır
- Yayma, sondaki boyutları hizalar; boyutlar eşleşmeli veya 1 olmalıdır
- Sütunlar boyunca yaymak için sütun vektörlerini (n,1) kullanın
- ufunc'ler:
np.sqrt,np.log,np.exp - Verileri
data - data.mean(axis=0)ile merkezleyin
Sıkça Sorulan Sorular
“Yayınlama ve Vektörleştirilmiş İşlemler” dersi ücretsiz mi?
Evet — “Yayınlama ve Vektörleştirilmiş İşlemler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Yayınlama ve Vektörleştirilmiş İşlemler” dersinde ne öğreneceğim?
Yayınlamanın nasıl çalıştığı, elemana göre işlemler ve vektörleştirmeyle döngülerden kaçınma. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Yayınlama ve Vektörleştirilmiş İşlemler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Dizi Oluşturma ve Özellikleri
- İndeksleme, Dilimleme ve Gelişmiş İndeksleme
- Yayınlama ve Vektörleştirilmiş İşlemler
- NumPy ile Lineer Cebir