Numpy matematiksel işlemler

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)

1 Beğeni

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.

2 Beğeni

Ben normalde bunu for dongüsü ile yapmılştım normal dizilerde, mülakat sorusu çıkabilir çözümünü merak etmiştim.