Tam metin 3384 Kelimeler, tahmini öğrenme süresi 10 dakika
Kaynak: Unsplash
Python'a yeni başlayanların temellerine hakim olmanın yanı sıra, bazı ipuçlarını ve püf noktalarını anlamak, öğrenmeye giden yolda vazgeçilmez bir katalizördür ve bu da daha iyi öğrenmenize yardımcı olabilir.
Numpy, Python için en popüler kitaplıklardan biridir.Avantajları göz önüne alındığında, hemen hemen her Python programcısı onu aritmetik işlemler için kullanır. Numpy dizileri Python listelerinden daha kompakttır. Kütüphane ayrıca birçok yaygın matris işlemini çok verimli bir şekilde uygular.
Aşağıdaki küçük çekirdek, Python'a yeni başlayanların uygulamaya dayalı olarak öğrenmesi gereken 4 uyuşmuş beceriyi derledi: Daha kısa ve okunabilir kod yazmanıza yardımcı olabilirler.
Numpy becerilerini öğrenmeden önce, lütfen aşağıdaki makalelerde Python'un bazı yerleşik işlevlerine aşina olduğunuzdan emin olun.
Veri kümeleri kusurludur, her zaman eksik veya geçersiz kayıt dizilerini içerirler ve bu kayıtlar genellikle göz ardı edilir. Örneğin, sensör arızası nedeniyle, meteoroloji istasyonunun ölçülen değeri eksik değerler içerebilir.
Numpy, maskelenmiş veri dizilerini destekleyen bir alt modül numpy.ma'ya sahiptir. Maskelenmiş dizi, normal bir numpy dizisi ve geçersiz kayıtların konumunu gösteren bir maske içerir.
np.ma.MaskedArray (veri = dizi, maske = geçersiz_mask)
Bazen bir dizideki geçersiz kayıtları işaretlemek için negatif bir değer veya dize kullanılır. -999 gibi maskelenecek değeri biliyorsanız, maskelenmiş bir dizi oluşturmak için np.ma.masked_values (arr, value = -999) da kullanabilirsiniz. Parametre olarak maskelenmiş bir diziyi alan herhangi bir uyuşukluk işlemi, aşağıda gösterildiği gibi, bu geçersiz kayıtları otomatik olarak yok sayacaktır.
matematik ithal etmek
defis_prime (n):
iddia etmek > 1, 'Giriş 1'den büyük olmalıdır'
eğer n% 2 == 0 ve n > 2:
returnFalse
returnall (n% i inrange için (3, int (math.sqrt (n)) +1, 2))
arr = np.array (aralık (2,100))
non_prime_mask =
prime_arr = np.ma.MaskedArray (veri = dizi, maske = non_prime_mask)
baskı (prime_arr)
#
arr = np.array (aralık (11))
baskı (dizi.sum ()) # 55
arr = -999 # eksik değeri gösterir
masked_arr = np.ma.masked_values (arr, -999)
print (masked_arr.sum ()) # 45
by GitHub tarafından barındırılan rawnumpy-ma.py'yi görüntüleyin
Kaynak: Unsplash
Yayın, yeni başlayanların istemeden deneyebileceği bir şeydir. Aynı şekle sahip dizi çiftlerine birçok numpy aritmetik işlem uygulanır ve bu dizi çiftlerinin elemanları tek tek çalıştırılır. Yayın, gereksiz verileri kopyalamadan dizi işlemlerini vektörleştirebilir. Bu, etkili algoritma uygulaması ve daha yüksek kod okunabilirliği sağlar.
Örneğin, dizi boyutuna bakılmaksızın dizideki tüm değerlere 1 eklemek için arr + 1'i kullanabilirsiniz. Ayrıca arr'ı da geçebilirsiniz > 2 Dizideki tüm değerlerin 2'den büyük olup olmadığını kontrol edin.
Ama iki dizinin yayınla uyumlu olup olmadığını nasıl anlarsınız?
Bağımsız değişken 1 (4D dizisi): 7 × 5 × 3 × 1
Bağımsız değişken 2 (3B dizisi): 1 × 3 × 9
Çıkış (4D dizisi): 7 × 5 × 3 × 9
İki dizinin her boyutu eşit olmalı veya bunlardan biri 1 olmalıdır. Aynı sayıda boyuta sahip olmaları gerekmez. Yukarıdaki örnek bu kuralları göstermektedir.
Bir dizi dizi için, np.argmax (arr), np.argmin (arr) ve np.argwhere (koşul (arr)), sırasıyla kullanıcı tanımlı koşulu karşılayan maksimum değeri, minimum değeri ve değerin dizinini döndürür. Bu arg işlevleri yaygın olarak kullanılsa da, diziyi sıralamak için dizini döndüren np.argsort () işlevini genellikle yok sayarız.
Bir dizinin değerlerini başka bir diziye göre sıralamak için np.argsort'u kullanabilirsiniz. Aşağıdaki örnek, öğrenci adlarını sıralamak için test puanlarını kullanır. Sıralı ad dizisini orijinal sırasına dönüştürmek için np.argsort (np.argsort (score)) da kullanabilirsiniz.
skor = np.array ()
isim = np.array ()
sıralanmış_name = ad
# puanlarının artan sırasına göre bir dizi isim
baskı (sıralanmış_name)
#
orijinal_adı = sıralı_adı
baskı (orijinal_adı)
#
% timeit adı
# 1.83 µs ± 182 ns döngü başına
(ortalama ± std. sapma 7 çalıştırma, her biri 100000 döngü)
% timeit sıralandı (zip (puan, ad))
Döngü başına # 3.2 µs ± 76.7 ns
(ortalama ± std. sapma 7 çalıştırma, her biri 100000 döngü)
GitHub tarafından 'da barındırılan rawnumpy-argsort.py'yi görüntüleyin
Performansı, yerleşik Python işlevini (zip ()) kullanmaktan daha hızlıdır ve daha okunabilirdir.
Kaynak: Unsplash
Bir numpy dizisini bölmek için sözdizimi i: j'dir, burada i ve j sırasıyla başlangıç dizinini ve bitiş dizinini temsil eder. Bir numpy dizisi için arr = np.array (range (10)), arr çağrısı dönecektir.
Yüksek boyutlu dizilerle uğraşırken, her eksenin tüm dizinlerini seçmek için kullanabilirsiniz. Birden çok eksendeki tüm dizinleri seçmek için ... öğesini de kullanabilirsiniz. Buradan, genişleme eksenlerinin tam sayısı çıkarılabilir.
arr = np.array (range (1000)). reshape (2,5,2,10, -1)
baskı (arr == arr)
#,
# ,
# ,
# >,
#,
# ,
# ,
# ,
# >>)
baskı (dizi şekli) # (2, 5, 2, 10, 5)
baskı (dizi şekli) # (2, 5, 1, 2, 10, 5)
Rawnumpy-slicing.py'yi by GitHub'da barındırılan görüntüleyin
Öte yandan, kullanıcı tanımlı bir eksen konumuna yeni bir eksen eklemek için yukarıda gösterildiği gibi np.newaxis kullanın. Bu işlem, dizinin şeklini bir boyut birimi kadar genişletir. Bu np.expand_dims () ile de elde edilebilmesine rağmen, np.newaxis kullanımı daha okunaklı ve daha zariftir.
Kaynak: Unsplash
Hepinizin kod yazarak eğlenmeye devam etmesini diliyorum ~ her gün daha da güçleniyor ~
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun