Python'da Dizine Eklenecek Diğer Form

Oct 08 2020

Bir Makine Öğrenimi kursunu takip ediyorum ve numpy kitaplığının gözden geçirilmesinde, daha önce hiç görmediğim bir indeksleme yöntemi kullanılıyor. Biz tanımladık a = np.array([[1,2],[3,4],[5,6]]). İki yeni diziler sonradan oluşturulur: np.array([a[0,0], a[1,1], a[2,1]]. Bildiğim indeksleme yolu bu. Bilmiyorum o endeksleme yolu şudur: print(a[[0,1,2],[0,1,1]]). Birisi bana bu son indeksleme şekli hakkında bir açıklamada yardımcı olabilir mi?

Yanıtlar

1 Marat Oct 08 2020 at 05:15

Tüm ndiziler geçirilir, burada ndizi boyut sayısı, bu boyutlar karşılık gelen dizinler olarak kullanılır ise. a[[0,1,2],[0,1,1]]eşdeğerdir[a[0,0], a[1,1], a[2,1]]

Uyuşuk belgelerden alıntı yapmama izin verin :

... Her satırdan belirli bir eleman seçilmelidir. Satır dizini yalnızca [0, 1, 2] 'dir ve sütun dizini, burada [0, 1, 0] ilgili satır için seçilecek öğeyi belirtir. İkisini birlikte kullanarak görev, gelişmiş indeksleme kullanılarak çözülebilir:

x = np.array([[1, 2], [3, 4], [5, 6]])

x[[0, 1, 2], [0, 1, 0]]
array([1, 4, 5])
1 Gabitohh Oct 08 2020 at 05:29

Tamsayı dizi indekslemeyi çağırır . Senin örnekte, için ulasarak olan [[0,1,2],[0,1,1]]adında bir 1x3 dizinin, endeksler a. Bunun anlamı şunlardan alıyorsunuz a:

[
    the first element of the first array,contained in this 1x3 array,
    the second element of the second array, contained in this big array,
    the second element of the third array, contained in the same array
]

Dışarı yazdırma, sen çıktısını alacak [1 4 6]olanlar, belirtilen pozisyonlarda unsurlardır çünkü ( (0,0), (1,1), (2,1)). Bunu bir sütun ve satır şeması gibi görselleştirebilirsiniz :

[[rows],[colums]] # vertically speaking

İlk alt dizide olmasını istediğiniz öğelerin satırlarını ve ikinci alt dizideki sütunları seçersiniz .