Python'da Dizine Eklenecek Diğer Form
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
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])
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 .