top of page

Üyelik Paketlerinde 25% İndirim İçin Kodun : "welcome"

Numpy ile Performanslı İşlemler



Hands-on Mentor Kapsamlı Blog İçeriği
Hands-on Mentor Tutorials


Vectorized Operations

Numpy, vektörleştirilmiş işlemler sayesinde hızlı ve verimli hesaplamalar yapmayı sağlar. Vektörleştirilmiş işlemler, döngüler kullanmadan toplu işlemler yapmanızı sağlar ve performansı önemli ölçüde artırır.


Temel Vektörleştirilmiş İşlemler

Vektörleştirilmiş işlemler, element bazında gerçekleştirilir ve tüm array üzerinde aynı anda uygulanır.


Toplama İşlemi


import numpy as np

# İki array oluşturma
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])

# Array'leri toplama
c = a + b
print("Sum of arrays:", c)
# Çıktı: Sum of arrays: [ 7  9 11 13 15]


Çarpma İşlemi


import numpy as np

# İki array oluşturma
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])

# Array'leri çarpma
c = a * b
print("Product of arrays:", c)
# Çıktı: Product of arrays: [ 6 14 24 36 50]


Üstel İşlemler


import numpy as np

# Bir array oluşturma
a = np.array([1, 2, 3, 4, 5])

# Her elemanın karesini alma
b = np.square(a)
print("Square of array elements:", b)
# Çıktı: Square of array elements: [ 1  4  9 16 25]

# Her elemanın karekökünü alma
c = np.sqrt(a)
print("Square root of array elements:", c)
# Çıktı: Square root of array elements: [1.         1.41421356 1.73205081 2.         2.23606798]


Vektörleştirilmiş Fonksiyonlar

Numpy'da, element bazında işlemler yapan birçok fonksiyon bulunmaktadır. Bu fonksiyonlar, vektörleştirilmiş işlemlerle yüksek performans sağlar.


Trigonometrik Fonksiyonlar


import numpy as np

# Bir array oluşturma
a = np.array([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])

# Sinüs fonksiyonunu uygulama
sin_values = np.sin(a)
print("Sine of array elements:", sin_values)
# Çıktı: Sine of array elements: [ 0.0000000e+00  1.0000000e+00  1.2246468e-16 -1.0000000e+00
#                                 -2.4492936e-16]

# Kosinüs fonksiyonunu uygulama
cos_values = np.cos(a)
print("Cosine of array elements:", cos_values)
# Çıktı: Cosine of array elements: [ 1.0000000e+00  6.1232340e-17 -1.0000000e+00 -1.8369702e-16
#                                   1.0000000e+00]


Logaritma Fonksiyonları


import numpy as np

# Bir array oluşturma
a = np.array([1, 2, 3, 4, 5])

# Doğal logaritma fonksiyonunu uygulama
log_values = np.log(a)
print("Natural logarithm of array elements:", log_values)
# Çıktı: Natural logarithm of array elements: [0.         0.69314718 1.09861229 1.38629436 1.60943791]

# Logaritma taban 10 fonksiyonunu uygulama
log10_values = np.log10(a)
print("Logarithm base 10 of array elements:", log10_values)
# Çıktı: Logarithm base 10 of array elements: [0.         0.30103    0.47712125 0.60205999 0.69897   ]


Broadcasting

Broadcasting, farklı şekillerdeki array'ler arasında element bazında işlemler yapmayı sağlar. Bu özellik, array'lerin boyutlarını eşleştirerek işlemleri gerçekleştirir.


Broadcasting Temelleri

Broadcasting, daha küçük bir array'in daha büyük bir array ile boyutlarını uyumlu hale getirerek işlemler yapmasına olanak tanır.


Örnek:


import numpy as np

# 3x3 boyutunda bir array oluşturma
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 1x3 boyutunda bir array oluşturma
b = np.array([1, 0, 1])

# Broadcasting ile toplama işlemi
c = a + b
print("Result of broadcasting addition:\\n", c)
# Çıktı:
# Result of broadcasting addition:
# [[ 2  2  4]
#  [ 5  5  7]
#  [ 8  8 10]]


Daha Karmaşık Broadcasting Örnekleri

Broadcasting, daha karmaşık işlemler yapmanıza olanak tanır ve bu işlemler sırasında boyutları otomatik olarak eşler.


Örnek:


import numpy as np

# 4x1 boyutunda bir array oluşturma
a = np.array([[1], [2], [3], [4]])

# 1x3 boyutunda bir array oluşturma
b = np.array([1, 2, 3])

# Broadcasting ile çarpma işlemi
c = a * b
print("Result of broadcasting multiplication:\\n", c)
# Çıktı:
# Result of broadcasting multiplication:
# [[ 1  2  3]
#  [ 2  4  6]
#  [ 3  6  9]
#  [ 4  8 12]]


Broadcasting Kuralları


Broadcasting kuralları, array'lerin şekillerini eşleştirirken şu kurallara dayanır:

  1. Eğer array'lerin boyutları farklı ise, daha küçük boyuta sahip olan array'in başına yeterli sayıda boyut eklenir.

  2. Eğer bir boyut eşleşmiyorsa ve biri 1 ise, o boyut diğerinin boyutu ile eşleşir.

  3. Eğer boyutlar eşleşmiyorsa ve her ikisi de 1 değilse, broadcasting mümkün değildir ve hata alınır.


Örnek:


import numpy as np

# 3x1 boyutunda bir array oluşturma
a = np.array([[1], [2], [3]])

# 1x4 boyutunda bir array oluşturma
b = np.array([1, 2, 3, 4])

# Broadcasting ile toplama işlemi
c = a + b
print("Result of broadcasting addition:\\n", c)
# Çıktı:
# Result of broadcasting addition:
# [[2 3 4 5]
#  [3 4 5 6]
#  [4 5 6 7]]


Bu dersin beşinci partı ile Numpy'da vektörleştirilmiş işlemleri ve broadcasting'i öğrendik. Vektörleştirilmiş işlemler sayesinde yüksek performanslı hesaplamalar yapabilir ve broadcasting ile farklı boyutlardaki array'ler arasında işlemler gerçekleştirebiliriz. Bir sonraki partta, Pandas'a giriş yapacak ve temel kavramları öğreneceğiz.

 

Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !




Comments


Commenting has been turned off.
bottom of page