Python Yeni Başlayanlar İçin NumPy Eğitimi

⚡ Akıllı Özet

NumPy temel bir kütüphanedir. Python Sayısal hesaplama, dizi oluşturma, matrisler, doğrusal cebir ve rastgele örnekleme için bir kütüphane. Bu NumPy eğitiminde kurulum, dizi oluşturma ve yeniden şekillendirme konuları ele alınmaktadır.pingDilimleme, istatistik ve matris matematiği, çalıştırılabilir kodlarla. Python örnekleri.

  • Temel Kullanım: Hızlı N boyutlu diziler ve vektörleştirilmiş matematik Python.
  • ⚙️ Anahtar İşlevler: sıfırlar, birler, yeniden şekillendirme, hstack, nokta, linspace.
  • 📚 Foundations: Doğrusal cebir, yayıncılık, istatistik, dilimleme.
  • ???? Şimdiki versiyonu: NumPy 2.x (Haziran 2024'te yayınlandı) artık kararlı durumda.
  • 🤖 Yapay Zeka Kullanımı: Py'nin omurgasıTorch, TensorFlow, JAX ve CuPy tensörleri.

Python NumPy Eğitimi

NumPy nedir? Python?

Dizi açık kaynak Python Matematik, bilim, mühendislik ve veri bilimi programlaması için bir kütüphane. Matematiksel ve istatistiksel işlemler için çok kullanışlı bir kütüphanedir. PythonÇok boyutlu diziler ve matris çarpımıyla mükemmel çalışır ve C/ ile kolayca entegre olur.C++ hem de Fortran.

Herhangi bir bilimsel proje için NumPy bilinmesi gereken bir araçtır. N boyutlu diziler, doğrusal cebir, rastgele sayı üretimi, Fourier dönüşümleri ve daha fazlası için tasarlanmıştır.

NumPy şunları sağlar: Python Çok boyutlu diziler ve matrisler için birinci sınıf destek ve bunlara etki eden çok sayıda matematiksel işlem. Bu kılavuzda, ' eğitimine geçmeden önce bilmeniz gereken temel işlevleri gözden geçireceğiz.TensorFlow. '

NumPy'yi neden kullanmalısınız?

NumPy bellek açısından verimlidir, bu nedenle büyük miktarda sayısal veriyi saf NumPy'ye göre daha kolay işleyebilir. Python Listeler için de oldukça kullanışlıdır. Ayrıca matris çarpımı ve yeniden şekillendirme için de çok uygundur.pingVe hızlıdır çünkü ağır işler derlenmiş C rutinlerine devredilir. Aslında, TensorFlow, Py gibi kütüphaneler bunu sağlar.Torch ve Scikit-learn, arka uçlarında matris matematiği için NumPy dizilerine güveniyor; bu da NumPy'yi çoğu modern veri bilimi ve yapay zeka iş akışının altında sessizce çalışan bir araç haline getiriyor.

NumPy Nasıl Kurulur

NumPy kütüphanesini kurmak için lütfen eğitimimize bakın. TensorFlow nasıl kurulur. NumPy varsayılan olarak Anaconda ile birlikte kurulur.

Nadir durumlarda NumPy yüklü değilse, aşağıdaki seçeneklerden herhangi birini kullanın.

NumPy'yi Anaconda'yı kullanarak yükleyebilirsiniz:

conda install -c anaconda numpy
  • In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy

Pip kullanıcıları tek bir komutla kurulum veya yükseltme yapabilirler:

pip install --upgrade numpy

NumPy'yi İçe Aktarın ve Sürümü Kontrol Edin

Numpy'yi içe aktarma komutu:

import numpy as np

Yukarıdaki satır, NumPy ad alanını şu şekilde yeniden adlandırır: npBu kısayol, NumPy fonksiyonlarına, metotlarına ve özelliklerine önek eklemenizi sağlar. np. ty yerineping numpy.Ve bu, NumPy ekosisteminde yaygın olarak kullanılan standart bir yöntemdir.

Yüklediğiniz NumPy sürümünü kontrol etmek için aşağıdaki komutu kullanın:

print(np.__version__)

Çıktı:

2.1.3

NumPy 2.0, Haziran 2024'te piyasaya sürüldü ve şu anda kararlı ana sürüm serisidir. Projeniz hala 1.x API'sine bağımlıysa, sabitleyin. numpy<2 Gereksinimler dosyanızda, bazı eski takma adlar gibi bazı nedenlerden dolayı, np.float 2.0'de kaldırıldı.

Nedir Python NumPy Dizisi?

NumPy dizileri biraz şuna benziyor: Python İlk bakışta liste gibi görünseler de, çok farklı davranırlar. Konuya yeni başlayan okuyucular için, ndarray'in ne olduğunu ve neden önemli olduğunu açıklayalım.

Adından da anlaşılacağı gibi, NumPy dizisi, NumPy kütüphanesinin temel veri yapısıdır. Adı, "Sayısal" kelimelerinin kısaltmasıdır. Python” veya “Sayısal Python"ndarray, bilinen bir şekle ve veri türüne sahip, homojen, sabit boyutlu bir bellek bloğudur."

NumPy Dizisi Oluşturma

NumPy'de dizi oluşturmanın en basit yolu, bir noktadan başlamaktır. Python Liste.

myPythonList = [1,9,8,3]

dönüştürmek Python listeyi NumPy dizisine dönüştürmek için np.array.

numpy_array_from_list = np.array(myPythonList)

Dizinin içeriğini görüntüleyin.

numpy_array_from_list

Çıktı:

array([1, 9, 8, 3])

Uygulamada herhangi bir beyanda bulunulmasına gerek yoktur. Python Önce listeyi hazırlayın. İki adım birleştirilebilir.

a = np.array([1,9,8,3])

NOT: NumPy dokümantasyonunda ayrıca şunlardan da bahsediliyor: np.ndarray, fakat np.array Bu, günlük kullanım için önerilen fabrika ayarıdır.

Aynı şekilde bir demetten NumPy dizisi de oluşturabilirsiniz.

Matematiksel OperaBir Dizideki İşlemler

Toplama, çıkarma gibi matematiksel işlemler gerçekleştirebilirsiniz.tracBir dizi üzerinde bölme, çarpma ve bölme işlemleri. Sözdizimi, dizi adından sonra operatör ( ) şeklindedir.+, -, *, /), ardından işlenen gelir. Bu işlemler vektörleştirilmiştir, yani NumPy bunları açık bir belirtme olmaksızın her öğeye uygular. Python döngü.

Örnek:

numpy_array_from_list + 10

Çıktı:

array([11, 19, 18, 13])

Bu işlem, NumPy dizisinin her elemanına 10 ekler.

Dizinin Şekli

Bir dizinin şeklini aşağıdaki yöntemle kontrol edebilirsiniz: shape Bu özellik, dizi adına eklenerek erişilir. Aynı şekilde, türü de kontrol edebilirsiniz. dtype.

import numpy as np
a = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Tam sayı, ondalık noktası olmayan bir değerdir. Ondalık sayılar içeren bir dizi oluşturursanız, veri türü (dtype) kayan noktalı sayıya (float) dönüşür.

#### Different type
b = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2 Boyutlu Dizi

Parantez içine virgül koyarak bir boyut ekleyebilirsiniz.

İç içe geçmiş demetlerin dış parantezlerin içinde yer alması gerektiğini unutmayın. [].

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3 Boyutlu Dizi

Daha yüksek boyutlar da aynı şekilde oluşturulabilir.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Hedef Code
Dizi oluştur dizi([1,2,3])
şekli yazdır dizi([.]).şekil

Numpy.zeros() nedir?

numpy.sıfır() or np.zeros bir Python Sıfırlarla dolu bir matris oluşturmak için kullanılan fonksiyon. numpy.zeros() TensorFlow'da ilk yineleme sırasında ağırlıkları başlatmanız veya diğer istatistiksel görevler için yer tutucu arabellekler oluşturmanız gerektiğinde kullanışlıdır.

numpy.zeros() işlevi Sözdizimi

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros() Parametreleri

Burada,

  • Shape: NumPy sıfır dizisinin şekli.
  • Dtipi: Elemanların veri türü. İsteğe bağlıdır ve varsayılan değer şudur: float64.
  • Sipariş Numarasıvarsayılan değer CBu, tarafından kullanılan satır öncelikli yerleşim düzenidir. numpy.zeros() in Python.

Python numpy.zeros() Örnek

import numpy as np
np.zeros((2,2))

Çıktı:

array([[0., 0.],
          [0., 0.]])

Datatype ile numpy sıfır örneği

import numpy as np
np.zeros((2,2), dtype=np.int16)

Çıktı:

array([[0, 0],
         [0, 0]], dtype=int16)

Numpy.ones() nedir?

np.ones() işlevi Birlerle dolu bir matris oluşturur. numpy.ones() in Python TensorFlow'da ilk yineleme sırasında ağırlıkları başlatırken ve diğer istatistiksel görevler için kullanışlıdır.

Python numpy.ones() Söz Dizimi

numpy.ones(shape, dtype=float, order='C')

Python numpy.ones() Parametreleri

Burada,

  • Shape: np.one'ların şekli Python Dizi.
  • Dtipi: Elemanların veri türü. İsteğe bağlıdır ve varsayılan değer şudur: float64.
  • Sipariş Numarasıvarsayılan değer CBu, satır öncelikli yerleşim düzenidir.

Python numpy.ones() Veri Türü Örneğiyle 2D Dizi

import numpy as np
np.ones((1,2,3), dtype=np.int16)

Çıktı:

array([[[1, 1, 1],
       [1, 1, 1]]], dtype=int16)

numpy.reshape() işlevi Python

Python NumPy Yeniden Şekillendirme Bir dizinin şeklini, içindeki verileri değiştirmeden değiştirir. Verileri geniş formattan uzun formata dönüştürmeniz veya bir modeli beslemeden önce 1 boyutlu vektörden 2 boyutlu matrise taşımanız gerekebilir. np.reshape Bu fonksiyon tek bir çağrıda bunu halleder.

np.reshape()'in sözdizimi

numpy.reshape(a, newShape, order='C')

Burada,

aYeniden şekillendirmek istediğiniz dizi.

yeni şekil: istenen yeni şekil.

Sipariş Numarasıvarsayılan değer C, satır öncelikli yerleşim.

NumPy Yeniden Şekillendirme Örneği

import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Çıktı:

 // Before reshape
[[1 2 3]
 [4 5 6]]
//After Reshape
array([[1, 2],
	[3, 4],
	[5, 6]])

numpy.flatten() içinde Python

Python NumPy Düzleştir Dizinin tek boyuta indirgenmiş bir kopyasını döndürür. Evrişimsel sinir ağları gibi sinir ağlarıyla çalışırken, bir görüntü tensörünü yoğun bir katmana geçirmeden önce genellikle düzleştirmeniz gerekir. np.flatten() Bu fonksiyon tek bir çağrıda bunu halleder.

np.flatten() sözdizimi

numpy.flatten(order='C')

Burada,
Sipariş Numarasıvarsayılan değer C, satır öncelikli yerleşim.

NumPy Flatten Örneği

e.flatten()

Çıktı:

array([1, 2, 3, 4, 5, 6])

Numpy.hstack()'ın içeriği nedir? Python?

numpy.hstack bir Python Giriş dizilerinin ardışık dizilerini yatay olarak tek bir dizi halinde birleştirmek için kullanılan fonksiyon. hstack()Sütun ekseni boyunca veri ekliyorsunuz. NumPy'de özellik vektörlerini yan yana birleştirmeniz gerektiğinde çok kullanışlı bir yardımcı fonksiyondur.

Hadi birlikte inceleyelim. hstack in Python bir örnekle.

Örnek:

## Horizontal Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Horizontal Append:', np.hstack((f, g)))

Çıktı:

Horizontal Append: [1 2 3 4 5 6]

Numpy.vstack()'ın içeriği nedir? Python?

numpy.vstack bir Python Giriş dizilerinin sıralarını dikey olarak tek bir dizi halinde birleştirmek için kullanılan fonksiyon. vstack()Verileri satır ekseni boyunca ekliyorsunuz, bu da örnek gruplarını birleştirmek istediğinizde kullanışlı oluyor.

Bunu bir örnekle inceleyelim.

Örnek:

## Vertical Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Vertical Append:', np.vstack((f, g)))

Çıktı:

Vertical Append: [[1 2 3]
 [4 5 6]]

NumPy'ı inceledikten sonra vstack hem de hstackŞimdi NumPy'de rastgele sayı üreten bir örneğe bakalım.

Rastgele Oluştur Numbers NumPy'yi kullanma

Gauss dağılımından rastgele sayılar üretmek için şunu kullanın:

numpy.random.normal(loc, scale, size)

Burada,

  • LocOrtalama. Dağılımın merkezi.
  • ölçek: standart sapma.
  • Beden: Geri gönderilen örnek sayısı.

Örnek:

## Generate random numbers from a normal distribution
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)
[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Grafiğe döküldüğünde, dağılım aşağıdaki grafiğe benzer.

Rastgele Oluşturma Örneği Numbers NumPy'yi kullanma
Rastgele Oluşturma Örneği Numbers NumPy'yi kullanma

Yeni kodların giderek daha çok modern jeneratör API'sini kullandığını unutmayın. np.random.default_rng()Bu, eski sistemin yerine önerilen alternatiftir. np.random.normal NumPy 2.x'te yapılan çağrılar.

NumPy Asarray İşlevi

MKS asarray() Bu fonksiyon, girdiyi bir diziye dönüştürür. Girdi, liste, demet, ndarray veya benzeri bir dizi olabilir.

Sözdizimi:

numpy.asarray(data, dtype=None, order=None)

Burada,

veri: Diziye dönüştürmek istediğiniz veriler.

tip: isteğe bağlı. Belirtilmediği takdirde, veri türü giriş verilerinden çıkarılır.

Sipariş Numarasıvarsayılan değer CDiğer seçenek ise satır öncelikli yerleşimdir. F (Fortran-stil sütun-öncelikli).

Örnek:

Dört satır ve dört sütundan oluşan ve her biri 1 ile doldurulmuş aşağıdaki 2 boyutlu matrisi ele alalım.

import numpy as np
A = np.matrix(np.ones((4,4)))

Matristeki bir değeri değiştirmeye çalışırsanız... np.arrayOrijinal metin değiştirilmemiştir. Bunun sebebi şudur ki... np.array Matrisin bir kopyasını oluşturur.

np.array(A)[2]=2
print(A)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

Matris değişmedi. Kullanın asarray Orijinal diziyi yerinde değiştirmek istediğinizde. Üçüncü satırı 2 değerine ayarladığınızda ne olduğunu görelim.

np.asarray(A)[2]=2
print(A)

Code Açıklama:

np.asarray(A) matrisi dönüştürür A Bir dizi görünümüne.

[2] Üçüncü satırı seçer.

Çıktı:

[[1. 1. 1. 1.]
      [1. 1. 1. 1.]
      [2. 2. 2. 2.] # new value
      [1. 1. 1. 1.]]

Numpy.arange() nedir?

numpy.arange() `numPy` fonksiyonu, tanımlanmış bir aralıkta eşit aralıklarla yerleştirilmiş değerler içeren bir ndarray döndüren yerleşik bir NumPy fonksiyonudur. Örneğin, 1'den 10'a kadar değerler oluşturmak için `numPy` fonksiyonunu çağırabilirsiniz. np.arange() in Python.

Sözdizimi:

numpy.arange(start, stop, step, dtype)

Python NumPy arange Parametreleri:

  • Ana Sayfa: aralığın başlangıcı np.arange in Python.
  • durAralığın sonu.
  • adımDeğerler arasındaki boşluk. Varsayılan adım 1'dir.
  • Dtipi: NumPy için çıktı dizisinin türü arange.

Örnek:

import numpy as np
np.arange(1, 11)

Çıktı:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Örnek:

Bu NumPy kodundaki adımı değiştirmek için arange Örneğin, parantez içine üçüncü bir sayı ekleyin. Bu, adım boyutunu değiştirir.

import numpy as np
np.arange(1, 14, 4)

Çıktı:

array([ 1,  5,  9, 13])

NumPy Linspace İşlevi

linspace İki uç nokta arasında eşit aralıklarla örnekler döndürür.

Sözdizimi:

numpy.linspace(start, stop, num, endpoint)

Burada,

  • Ana Sayfa: dizinin başlangıç ​​değeri.
  • dur: dizinin son değeri.
  • IçindeOluşturulacak örnek sayısı. Varsayılan değer 50'dir.
  • Son nokta: Eğer True (Varsayılan) stop Bu son değerdir. Eğer False, stop içermiyor.

Örnek:

Örneğin, 1'den 5'e kadar eşit aralıklarla 10 değer oluşturmak için kullanılabilir.

import numpy as np
np.linspace(1.0, 5.0, num=10)

Çıktı:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Aralığa son rakamı dahil etmek istemiyorsanız, şunu ayarlayın: endpoint için False.

np.linspace(1.0, 5.0, num=5, endpoint=False)

Çıktı:

array([1. , 1.8, 2.6, 3.4, 4.2])

LogSpace NumPy İşlevi Python

logspace Logaritmik ölçekte eşit aralıklı sayılar döndürür. logspace aynı parametreleri paylaşıyor np.linspace.

Sözdizimi:

numpy.logspace(start, stop, num, endpoint)

Örnek:

np.logspace(3.0, 4.0, num=4)

Çıktı:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Son olarak, bir dizideki tek bir elemanın bellek boyutunu kontrol etmek istiyorsanız, şunu kullanabilirsiniz: itemsize.

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

Çıktı:

16

Her öğe 16 bayt alır.

İndeksleme ve Dilimleme Python

NumPy ile veri dilimleme oldukça kolaydır. Matrisi dilimleyeceğiz. e. içinde PythonKöşeli parantezleri kullanarak satır veya sütun döndürebilirsiniz.
Örnek:

## Slice
import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Unutmayın ki NumPy'de ilk dizi indeksi 0'dan başlar.

## First row
print('First row:', e[0])

## Second row
print('Second row:', e[1])

Çıktı:

First row: [1 2 3]
Second row: [4 5 6]

In PythonDiğer birçok dilde olduğu gibi,

  • Virgülün önündeki değer satır sayısını temsil eder.
  • Virgülün ardından gelen değerler sütunları temsil eder.
  • Bir sütun seçmek istiyorsanız, ekleyin. : Sütun indeksinden önce.
  • : Bu, seçili sütundaki tüm satırları istediğiniz anlamına gelir.
print('Second column:', e[:,1])
Second column: [2 5]

İkinci satırın ilk iki değerini döndürmek için şunu kullanın: : İkinci indekse kadar olan tüm sütunları seçmek için.

## Second Row, two values
print(e[1, :2])
[4 5]

İstatistiksel Fonksiyonlar Python

NumPy, verilen bir diziden minimum, maksimum, yüzdelik dilim, standart sapma, varyans ve daha fazlasını bulmak için kullanışlı bir dizi istatistiksel fonksiyon sunar. En yaygın olanları aşağıda listelenmiştir.

NumPy, tabloda özetlenen güçlü istatistiksel yardımcı araçlarla birlikte gelir.

İşlev Dizi
min np.min()
maksimum np.max()
Anlamına gelmek np.ortalama()
Medyan np.medyan()
Standart sapma np.std()

Aşağıdaki diziyi inceleyin:

Örnek:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

Çıktı:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

NumPy İstatistiksel Fonksiyonlarına Örnek

### Min
print(np.min(normal_array))

### Max
print(np.max(normal_array))

### Mean
print(np.mean(normal_array))

### Median
print(np.median(normal_array))

### Sd
print(np.std(normal_array))

Çıktı:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Numpy nokta çarpımı nedir?

numpy.dot Matris hesaplamaları için güçlü bir fonksiyondur. Örneğin, nokta çarpımını şu şekilde hesaplayabilirsiniz: np.dot. numpy.dot nokta çarpımını döndürür a hem de bHem 1 boyutlu hem de 2 boyutlu dizileri işleyebilir. 2 boyutlu girdiler için matris çarpımı gerçekleştirir.

Sözdizimi:

numpy.dot(x, y, out=None)

Parametreler

Burada,

x, y: giriş dizileri. x hem de y her ikisi de 1 boyutlu veya 2 boyutlu olmalıdır np.dot() Nokta çarpımı veya matris çarpımı olarak çalışmak.

dışarı: Sonucu yakalamak için kullanılan isteğe bağlı çıktı argümanı. Aksi takdirde, bir ndarray döndürülür.

Geri dönüşler

Bu fonksiyon numpy.dot() İki dizinin nokta çarpımını döndürür. x hem de yİkisi de 1 boyutlu olduğunda skalar bir değer, aksi halde bir dizi döndürür. out Verilen dizi, döndürülür.

Artırdı

Nokta çarpımı Python bir yükseltir ValueError son boyutun x sondan ikinci boyutla eşleşmiyor y.

Örnek:

## Linear algebra
### Dot product: product of two arrays
f = np.array([1,2])
g = np.array([4,5])
### 1*4+2*5
np.dot(f, g)

Çıktı:

14

Matris Çarpımı Python

NumPy matmul() Bu fonksiyon iki dizinin matris çarpımını döndürür. İşte çalışma şekli.

1) İki boyutlu diziler için normal matris çarpımını döndürür.

2) Boyutlar 2'den büyük olduğunda, çarpım bir matris yığını olarak ele alınır.

3) Tek boyutlu bir dizi önce matrise dönüştürülür, ardından çarpım hesaplanır.

Ara ek @ operatör, şu tarihten itibaren kullanılabilir: Python 3.5, kısaltmasıdır. matmul ve modern kodlarda yaygın olarak kullanılmaktadır.

Sözdizimi:

numpy.matmul(x, y, out=None)

Burada,

x, y: Giriş dizileri. Skaler değerlere izin verilmez.

dışarı: isteğe bağlı parametre. Genellikle çıktı bir ndarray'de saklanır.

Örnek:

Aynı şekilde, matris çarpımını da şu şekilde hesaplayabilirsiniz: np.matmul.

### Matmul: matrix product of two arrays
h = [[1,2],[3,4]]
i = [[5,6],[7,8]]
### 1*5+2*7 = 19
np.matmul(h, i)

Çıktı:

array([[19, 22],
            [43, 50]])

determinant

Bir matrisin determinantını hesaplamanız gerekiyorsa, şunu kullanın: np.linalg.det()NumPy boyutlandırmayı sizin için halleder.

Örnek:

## Determinant 2*2 matrix
### 5*8-7*6
np.linalg.det(i)

Çıktı:

-2.000000000000005

NumPy Yayıncılığı Açıklaması

Yayınlama (broadcasting), NumPy'nin farklı şekillerdeki diziler üzerinde veri kopyalamadan aritmetik işlemler gerçekleştirmesini sağlayan kuraldır. Bir skaler değeri 1 boyutlu bir vektöre veya bir 1 boyutlu vektörü 2 boyutlu bir matrise eklediğinizde, NumPy daha küçük işleneni eksik eksenler boyunca uzatarak şekillerin hizalanmasını sağlar. Bu, açık kopyalamayı önler. Python Döngüler, NumPy kodunun hızlı ve özlü hissettirmesinin ana nedenlerinden biridir.

Sağdan sola karşılaştırıldığında, her bir boyut çifti birbirine eşitse veya bunlardan biri 1'e eşitse, iki şekil yayın için uyumludur. Örneğin, bir şekil matrisi (3, 4) bir şekil sırasına karşı yayınlar (4,) veya şekil sütunu (3, 1)Aynı mantık, makine öğreniminde normalleştirmeye de güç verir; burada bir alt kümeleme işlemi gerçekleştirirsiniz.tracBir grup örnekten elde edilen özellik başına ortalama vektörü tek bir satırda gösterir. Yayınlama (broadcasting) aynı zamanda Py gibi tensör kütüphaneleri tarafından kullanılan kavramsal modeldir.Torch, TensorFlow ve JAX gibi teknolojileri de içerdiğinden, burada öğrendiğiniz kurallar doğrudan GPU koduna uygulanabilir.

NumPy Yapay Zeka ve Makine Öğrenimine Nasıl Güç Katıyor?

NumPy, neredeyse her modern programlama dilinin temelinde yer alıyor. Python Yapay zeka yığını. PyTorch tensörleri, TensorFlow eager tensörleri ve JAX dizileri aynı yayınlama, dilimleme ve yeniden paylaşım özelliklerini sunar.ping NumPy ndarray'ler üzerinde öğrendiğiniz API. Birçok eğitimde hala önceden işlenmiş NumPy dizileri model eğitim döngülerine besleniyor ve çerçeveler bunları sıfır dönüştürmeyle kabul ediyor.

Üç somut örnek, NumPy'nin günümüzdeki yapay zeka çalışmalarına nasıl bağlandığını gösteriyor. Birincisi, veri mühendisleri ham verileri NumPy dizilerine dönüştürdükten sonra bunları scikit-learn işlem hatlarına veya Hugging Face veri kümelerine aktarıyorlar. İkincisi, araştırmacılar NumPy'yi bir CPU tabanı olarak kullanıyor ve ardından neredeyse aynı API'yi sağlayan ancak CUDA aracılığıyla NVIDIA GPU'larda çalışan CuPy'ye geçiyorlar. Üçüncüsü, JAX, NumPy API'sine otomatik türev alma ve anlık derleme ekleyerek, dizüstü bilgisayarda çalışan aynı kodun buluttaki TPU'larda da çalışmasını sağlıyor. Özetle, NumPy ile geliştirdiğiniz dizi becerileri, her büyük derin öğrenme araç setine aktarılıyor; bu da bu eğitimin yapay zeka geliştirme yolunda faydalı bir adım olmasını sağlıyor.

SSS

NumPy, hızlı N boyutlu diziler, vektörleştirilmiş matematik, doğrusal cebir, rastgele örnekleme ve Fourier dönüşümleri sağlar. Mühendisler ve veri bilimciler tarafından sayısal hesaplama, görüntü ve sinyal işleme, istatistik ve pandas, scikit-learn ve SciPy gibi üst düzey kütüphaneler için dizi altyapısı olarak kullanılır.

NumPy dizisi, sabit bir veri türündeki elemanları bitişik bir bellek bloğunda saklar; bu da vektörleştirilmiş matematiği hızlandırır. Python Listeler rastgele nesneler tutabilir, karma tipleri destekler ve daha yavaş olan eleman başına döngülere dayanır; bu nedenle esnektirler ancak büyük sayısal iş yükleri için çok daha az verimlidirler.

Haziran 2024'te yayınlanan NumPy 2.0, temel dizi API'sini istikrarlı tutarken, uzun süredir kullanım dışı olan takma adları (alias) kaldırıyor. np.float hem de np.intve tür yükseltme kurallarını sıkılaştırır. Üretim kodunun çoğu yalnızca küçük düzenlemeler gerektirir. Pin numpy<2 Eğer bir bağımlılık henüz güncellenmemişse.

PyTorch ve TensorFlow, tensör nesnelerini NumPy ndarray'leri üzerinde modeller. Aynı şekil, yayınlama ve dilimleme semantiğini paylaşırlar ve her ikisi de girdi olarak NumPy dizilerini kabul eder. NumPy ile öğrenilen beceriler, sinir ağları oluşturmaya, eğitim döngülerine ve tensör ön işleme işlem hatlarına doğrudan aktarılabilir.

Standart NumPy, CPU üzerinde çalışır. GPU hızlandırması için, NVIDIA CUDA cihazlarında NumPy API'sini yansıtan CuPy'yi veya GPU'lar ve TPU'lar için otomatik türev alma ve anlık derleme ekleyen JAX'ı kullanabilirsiniz. Her ikisi de, yapay zeka iş yükleri için minimum yeniden yazma ile mevcut NumPy kodunun çoğunu yeniden kullanmanıza olanak tanır.

Anaconda varsayılan olarak NumPy'yi içerir. Aksi takdirde, şunu çalıştırın: pip install numpy or conda install -c anaconda numpyMevcut bir NumPy kurulumunu 2.x sürümüne yükseltmek için şu komutu çalıştırın: pip install --upgrade numpyEtkin sürümü aşağıdaki yöntemle kontrol edin. print(np.__version__) içeride Python.

NumPy'nin yayınlama özelliği, verileri kopyalamadan farklı şekillerdeki diziler üzerinde işlem yapmasını sağlar. Boyutlar uyumlu olduğunda, daha küçük dizi sanal olarak daha büyük diziye uyacak şekilde genişletilir. Bu özellik, makine öğrenimi süreçlerinde normalleştirme, ölçeklendirme ve özellik mühendisliği için özlü ifadeler sağlar.

Bu yazıyı şu şekilde özetleyin: