Boyutsal İndeksleme
Coddy'nin Numpy Temelleri kursunda ders 13 / 18.
Numpy son derece güçlü bir aracı destekler - Boyutları İndeksleme.
Boyutları indekslemek için iki nokta üst üste : kullanırız. İki nokta üst üste, yerleştirildiği belirli indeksteki tüm öğeleri alır. Örneğin, ary.shape # --> (2, 1, 3, 1) şeklinde bir dizimiz olduğunu varsayalım, iki nokta üst üste : işaretini ary[:, 0, 0, 0] şeklinde yerleştirmek, şeklin en solundaki iki öğeyi alacak ve bunların her biri için geri kalan boyutların sıfırıncı öğesini çıkaracaktır.
Not: İki nokta üst üste işaretinin köşeli parantez [] içindeki konumu, indekslediğimiz boyuttur, yani:
ary[:, 0, 0, 0]4D boyutunu indekslerary[0, :, 0, 0]3D boyutunu indekslerary[0, 0, :, 0]2D boyutunu indekslerary[0, 0, 0, :]1D boyutunu indekslerary[:, :, 0, 0]4D ve 3D boyutlarını indeksler- vb.
Örnek 1
ary = np.array([
[1, 2],
[3, 4]
])
ary[:, 0] # --> [1, 3]
ary[0, :] # --> [1, 2]İki nokta üst üste, belirtilen indeksteki tüm öğeleri alır ve bir sonraki indekse devam eder
Bizim durumumuzda:
ary[:, 0]Tüm ilk öğeleri alırız ve her öğede 0. öğeyi alırızary[0, :]İlk öğeyi alırız ve o öğedeki tüm öğeleri alırız.
Örnek 2
3D dizi
ary = np.array([
[[1, 2], [3, 4]],
[[5, 6], [7, 8]]
])
ary[:, 0, :] # --> [[1, 2], [5, 6]]
ary[:, :, 0] # --> [[1, 3], [5, 7]]ary[:, 0, :]Tüm öğeleri alırız, sonra ilk öğeyi alırız ve son olarak oradaki her şeyi alırızary[:, :, 0]Tüm öğeleri alırız, sonra bu öğelerin hepsini alırız ve son olarak her birindeki ilk öğeyi alırız.ary[0, :, :]ifadesinin çıktısının ne olacağını tahmin edebilir misiniz?
Örnek 3
Her satırdan ilk ve son indeksi al
x = np.array([
[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23],
])
x[:, np.array([0, -1])]
>>> [0, 5, 6, 11, 12, 17, 18, 23]Örnek 4
Tıpkı açılış örneğindeki gibi (2, 1, 3, 1) şekline sahip bir dizi
ary = np.array([
[
[
[1],[2],[3]
]
],
[
[
[4],[5],[6]
]
]
])
ary[:, 0, 0, 0] # --> [1, 4]
ary[0, :, 0, 0] # --> [1]
ary[0, 0, :, 0] # --> [1, 2, 3]
ary[0, 0, 0, :] # --> [1]Not: Dilimleme (Slicing) dersinde öğrendiğimiz start:stop:step dilimleme sözdizimini kullanmak da mümkündür
ary[:, 0:5, 2:3, :]
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayVerilen bir 3D dizi ary içindeki her bir 1D diziden 2., 3. ve 4. sayıları alın
Kendin dene
import numpy as np
'''
ary looks like:
array([[[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]],
[[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39]],
[[40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
[50, 51, 52, 53, 54, 55, 56, 57, 58, 59]],
[[60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
[70, 71, 72, 73, 74, 75, 76, 77, 78, 79]],
[[80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]])
'''
ary = np.arange(0, 100).reshape(5, 2, 10) # don't change ary
res = ary[] # <-- Complete indices
print(str(res).replace("\n", "")) # don't change this lineNumpy Temelleri bölümündeki tüm dersler
2N-Boyutlu Dizi Oluşturma
Yüksek BoyutŞekilleri AnlamakSabit Değerlerle DoldurmaNumpy TipleriAralıkYeniden Şekillendirme3Numpy Dizisi İndeksleme
Temel İndekslemeDilimlemeDizi İndekslemeBoyutsal İndekslemeBoolean İndekslemeÇoklu Koşul İndeksleme