1. Liste ve Tuple üzerinden dizi oluşturmak
import numpy as np
Söz dizimi: np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0, like=None)
- object, bir dizi, tupple gibi veri listesini temsil etmektedir.
- dtype, oluşturulacak dizinin türünü temsil eder.
- copy, object değerinin kopyalanmasını temsil eder.
- ndmin, oluşacak olan dizinin kaç boyutlu olacağını temsil eder. Varsayıland değeri 0 dır.
Örnek-1: 1, 4, 6, 7, 8 değerlerinden oluşan bir listeyi elemanlarını "float" değerde olacak şekilde NumPy dizisine çevirelim.
myList=[1,4,6,7,8]
print(f"İlk listenin türü: {type(myList)}")
#NumPy dizisine çevirme işlemi
myNumpyArray=np.array(
object=myList,
dtype="float")
print(f"Oluşan NumPy Dizisi: {myNumpyArray}")
print(f"Oluşan NumPy Dizisinin türü: {type(myNumpyArray)}")
Çıktı:
İlk listenin türü: <class 'list'> Oluşan NumPy Dizisi: [1. 4. 6. 7. 8.] Oluşan NumPy Dizisinin türü: <class 'numpy.ndarray'>
Yukarıdaki çıktıda görüldüğü üzere verilen verinin türü "list" daha sonra ise "numpy.ndarray" türüne dönüştürüldü.
Örnek-2: 1, 2, 4, 6 değerlerinden oluşan bir tuple elemanlarını NumPy dizisine çevirelim.
myTuple=(1, 2, 4, 6 )
print(f"İlk verinin türü: {type(myTuple)}")
#NumPy dizisine çevirme işlemi
myNumpyArray=np.array(
object=myTuple)
print(f"Oluşan NumPy Dizisi: {myNumpyArray}")
print(f"Oluşan NumPy Dizisinin türü: {type(myNumpyArray)}")
Çıktı:
İlk verinin türü: <class 'tuple'> Oluşan NumPy Dizisi: [1 2 4 6] Oluşan NumPy Dizisinin türü: <class 'numpy.ndarray'>
Yukarıdaki çıktıda görüldüğü üzere verilen verinin türü "tuple" daha sonra ise "numpy.ndarray" türüne dönüştürüldü.
**Not: NumPy'da oluşturulan bir dizinin içeriğindeki elemanların türleri aynıdır (default olarak). Yani bir dizide hem string hem de sayısal bir değer oluşamaz.
Örnek-3: Farklı türde elemanları bulunan bir listeyi NumPy dizisine çevirelim.
myList=["arinway.com","enes",2022]
print(f"İlk verinin türü: {type(myList)}")
#NumPy dizisine çevirme işlemi
myNumpyArray=np.array(
object=myList)
print(f"Oluşan NumPy Dizisi: {myNumpyArray}")
print(f"Oluşan NumPy Dizisinin türü: {type(myNumpyArray)}")
Çıktı:
İlk verinin türü: <class 'list'> Oluşan NumPy Dizisi: ['arinway.com' 'enes' '2022'] Oluşan NumPy Dizisinin türü: <class 'numpy.ndarray'>
Yukarıdaki çıktıda görüldüğü üzere verilen verinin türü "list" daha sonra ise "numpy.ndarray" türüne dönüştürüldü. (Çıktı da sayısal olarak girilen 2022 değerinin de string olduğuna dikkat ediniz.)
Örnek-4: Float ve int türünde elemanları bulunan bir listeyi sadece "int" değerli elemanlar oluşacak şekilde NumPy dizisine çevirelim.
myList=[1,2.3,4,5,5.2,-2,-3.6]
print(f"İlk verinin türü: {type(myList)}")
#NumPy dizisine çevirme işlemi
myNumpyArray=np.array(
object=myList,
dtype="int")
print(f"Oluşan NumPy Dizisi: {myNumpyArray}")
print(f"Oluşan NumPy Dizisinin türü: {type(myNumpyArray)}")
Çıktı:
İlk verinin türü: <class 'list'> Oluşan NumPy Dizisi: [ 1 2 4 5 5 -2 -3] Oluşan NumPy Dizisinin türü: <class 'numpy.ndarray'>
Eğer Örnek-4'de dtype olarak "int" belirtilmemiş olsaydı oluşan NumPy dizisi otomatik olarak "float" türünde oluşacaktı.
2. Tamamı 0 değerinden oluşan dizi oluşturmak
import numpy as np
Söz dizimi: np.zeros(shape, dtype=float, order='C', *, like=None)
- shape, oluşacak dizinin boyutunu temsil eder.
- dtype, oluşturulacak dizinin türünü temsil eder. Varsayılan olarak "float" türünde elemanlar oluşacaktır.
Örnek-1: Tüm değerleri 0 olan 15 elemandan oluşan bir NumPy dizisi oluşturalım.
np.zeros(shape=15)
Çıktı:
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
Herhangi bir "dtype" belirtilmediği için tüm dizi elemanları "float" türünde oluşmuş oldu.
Örnek-2: Tüm değerleri 0, boyutları 4x4 ve eleman türü "int" olan NumPy dizisi oluşturalım.
np.zeros(shape=(4,4),
dtype="int")
Çıktı:
array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]])
3. Tamamı 1 değerinden oluşan dizi oluşturmak
import numpy as np
Söz dizimi: np.ones(shape, dtype=None, order='C', *, like=None)
- shape, oluşacak dizinin boyutunu temsil eder.
- dtype, oluşturulacak dizinin türünü temsil eder. Varsayılan olarak "None" olsa da boş bıraklıldığında "float" türünde elemanlardan oluşacaktır.
Örnek-1: Tüm değerleri 1 olan 10 elemandan oluşan bir NumPy dizisi oluşturalım.
np.ones(shape=10)
Çıktı:
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
Örnek-2: Tüm değerleri 1, boyutları 6x5 ve eleman türü "int" olan NumPy dizisi oluşturalım.
np.ones(shape=(6,5),
dtype="int")
Çıktı:
array([[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]])
4. Tamamı kendi istediğimiz değerinden oluşan dizi oluşturmak
import numpy as np
Söz dizimi: np.full(shape, fill_value, dtype=None, order='C', *, like=None)
- shape, oluşacak dizinin boyutunu temsil eder.
- fill_value, dizi elemanlarının değerini temsil eder.
- dtype, oluşturulacak dizinin türünü temsil eder. Varsayılan olarak girilen fill_value değerine göre türü oluşmaktadır.
Örnek-1: Tüm değerleri 9 olan 12 elemandan oluşan bir NumPy dizisi oluşturalım.
np.full(shape=12,
fill_value=9)
Çıktı:
array([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9])
Örnek-2: Tüm değerleri "A" olan 5x4 elemandan oluşan bir NumPy dizisi oluşturalım.
np.full(shape=(5,4),
fill_value="A")
Çıktı:
array([['A', 'A', 'A', 'A'], ['A', 'A', 'A', 'A'], ['A', 'A', 'A', 'A'], ['A', 'A', 'A', 'A'], ['A', 'A', 'A', 'A']], dtype='<U1')
5. Tek satırda aralıklı dizi oluşturmak
Söz dizimi: np.arange([start,] stop[, step,], dtype=None, *, like=None)
- start, başlangıç değerini temsil eder.
- stop, bitiş değerini temsil eder.
- dtype, oluşturulacak dizinin türünü temsil eder.
Örnek-1: 4'den(dahil) başlayarak 42'ye kadar(hariç) giden 2 şer aralıklı bir NumPy dizisi oluşturalım.
np.arange(4,42,2)
Çıktı:
array([ 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40])
6.Tek satırda iki sayı arasında istenilen sayıda eleman oluşturmak
Söz dizimi: np.linspace(start,stop,num=50,endpoint=True, retstep=False, dtype=None,axis=0)
- start, başlangıç değerini temsil eder.
- stop, bitiş değerini temsil eder.
- num, başlangıç-bitiş aralığında kaç tane sayı olacağını temsil eder.
- endpoint, stop değerinin dahil olup olmayacağı bilgisini temsil eder. Varsayılan olarak True'dır.
- dtype, oluşturulacak dizinin türünü temsil eder.
Örnek-1: 2'den başlayarak 42'ye kadar 19 tane elemanı bulunan bir NumPy dizisi oluşturalım.
np.linspace(2,42,19) #sayıların artımı (stop-start)/num
Çıktı:
array([ 2. , 4.22222222, 6.44444444, 8.66666667, 10.88888889, 13.11111111, 15.33333333, 17.55555556, 19.77777778, 22. , 24.22222222, 26.44444444, 28.66666667, 30.88888889, 33.11111111, 35.33333333, 37.55555556, 39.77777778, 42. ])
7.Random olarak istenilen sayıda elemanlı dizi oluşturma
NumPy kütüphanesinde rasgele sayılar oluşturabilmek için "random" fonksiyonu kullanılmaktadır. Oluşturulacak sayıların yapılarına bağlı olarak birçok yöntem kullanılabilir. En önemli birkaç random fonksiyonunu inceleyelim;
7.1. 0-1 aralığında random sayı oluşturma
Söz dizimi:np.random.random(size=None)
- size, kaç tane elemandan oluşacağı bilgisini temsil eder.
Örnek-1: 0-1 aralığında 20 tane rasgele sayılardan oluşan bir NumPy dizisi oluşturalım.
np.random.random(size=20)
Çıktı:
array([0.96534651, 0.78812503, 0.52799094, 0.23729553, 0.75905402, 0.40718865, 0.89715653, 0.31474176, 0.75935873, 0.1278509 , 0.06041874, 0.63952381, 0.38113956, 0.54695236, 0.97834498, 0.16328078, 0.53200374, 0.75478395, 0.83742911, 0.27911901])
7.2. İstenilen aralıkta istenilen sayıda random sayı oluşturma
Söz dizimi:np.random.randint(low, high=None, size=None, dtype=int)
- low, başlangıç değerini temsil eder.
- high, bitiş değerini temsil eder.
- size, kaç tane elemanı olacağını temsil eder.
- dtype, oluşturulacak dizinin türünü temsil eder. Varsayılan olarak "int"dir.
Örnek-1: 15-28 aralığında 12 tane rasgele sayılardan oluşan bir NumPy dizisi oluşturalım.
np.random.randint(low=15,
high=28,
size=12)
Çıktı:
array([24, 21, 25, 21, 17, 27, 20, 26, 25, 22, 21, 25])
Örnek-2: 15-28 aralığında 5x5 tane rasgele sayılardan oluşan bir NumPy dizisi oluşturalım.
np.random.randint(low=15,
high=28,
size=(5,5))
Çıktı:
array([[26, 22, 27, 23, 20], [19, 22, 22, 20, 19], [17, 23, 25, 21, 15], [20, 21, 22, 26, 27], [18, 18, 15, 19, 21]])
7.3. Ortalama ve standart sapmasını belirterek istenilen sayıda random sayı oluşturma
Söz dizimi:np.random.normal(loc=0.0, scale=1.0, size=None)
- loc, ortalama değeri temsil eder.
- scale, standart sapma değerini temsil eder.
- size, kaç tane elemanı olacağını temsil eder.
Örnek-1: Ortalaması 10 standart sapması 2 olan 12 tane sayıdan oluşan bir NumPy dizisi oluşturalım.
np.random.normal(loc=10,
scale=2,
size=12)
Çıktı:
array([11.62856353, 11.54928801, 10.13734905, 7.32760097, 10.97152575, 6.58504921, 4.92304303, 12.16373554, 10.14264772, 12.95731343, 11.09783043, 10.4935408 ])
Örnek-2: Ortalaması 12 standart sapması 3 olan 3x3 tane sayıdan oluşan bir NumPy dizisi oluşturalım.
np.random.normal(loc=12,
scale=3,
size=(3,3))
Çıktı:
array([[12.66088998, 15.25599437, 13.38218989], [16.12169142, 13.33476793, 13.79530303], [12.00077334, 16.64355448, 7.64394387]])