Veri Bilimi & Veri Manipülasyonu - Numpy

Dizi Oluşturma

Yayın tarihi :15-Ara-21
Bölüm kodlarını ve/veya veri setlerini indir.

 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]])
Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.