Arkadaşlar numpy ile bir dizideki indisleri biribleriyle nasıl toplayabilirim
örneğin bir dizinin içindeki elemanları birbirleri ile toplayıp 5 den büyük olanı ekrana yazdırmak istiyorum
if (indis1) + (indis2) > 5:
print(istediğin şey)
aslında tam olarak bu değil örneğin a = [1,2,3] dizisi olsun bu dizinin içindeki verileri tek tek toplayıp büyük olanları ekrana yazıcak normal dizilerle ve for döngüsü ile bu yapılıyor
Tek boyutlu bir dizinin indisleri 0’dan baslayip n - 1’e kadar gidiyor (n = dizinin boyu). Toplamlari (n²-n)/2.
Loop’layip yazdiracagin icin numpy kullanmanin hic bir faydasi yok. Lakin “illa kullanacagim” dersen:
>>> x
array([0, 1, 2, 3, 4])
>>> xv = x.repeat(x.shape[0]).reshape(x.shape[0], -1)
>>> xh = xv.transpose()
>>> xv + xh > 5
array([[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, True],
[False, False, False, True, True],
[False, False, True, True, True]])
>>>
Cift cift toplayip?
Toplami buyuk olanlari ekrana yazacak?
Elemanlari mi, indisleri mi, toplamlari mi ekrana yazacak onu da hic belirtmemissin. Ornek durum vermeyi aliskanlik edinmek isteyebilirsin.
Mesela a = [1, 2, 3] dizisini vermissin ama bu diziyle ne yapmak istedigini belirtmemissin. Bu arada dizi niye numpy dizisi degil onu da anlayamadim.
Ben normalde bunu for dongüsü ile yapmılştım normal dizilerde, mülakat sorusu çıkabilir çözümünü merak etmiştim.