Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Python => Konuyu başlatan: zamzam23 - 18 Temmuz 2021, 21:55:57

Başlık: python array hk. ben kafayı yemeden yardım lütfen
Gönderen: zamzam23 - 18 Temmuz 2021, 21:55:57
Selamlar,
Python'da yeni sayılırım.

liste=[[a,b,c,d],
       [e,f,g,h],
       [k,l,m,d],
       [x,y,j,d],
       [p,r,s,z]]

şekilde bir array düşünün. Arrayin 0,2 ve 3. elemanının 3. indisleri aynı olsun. (d isimli indis)
Ben bu arrayde, 3. indisleri aynı olanları teke düşürmek istiyorum.

Yani istediğim yeni array:

liste2=[[a,b,c,d],
       [e,f,g,h],
       [p,r,s,z]]


Yardımcı olur musunuz?


 
Başlık: Ynt: python array hk. ben kafayı yemeden yardım lütfen
Gönderen: muhendisbey - 18 Temmuz 2021, 23:11:38
Ben de çok iyi biliyorum diyemem, basitten gidelim. Üçüncü indisleri aynı olan array adreslerini nasıl buluruz?
1. ye baktık "d" aramak için işaretledik
2. ye baktık "h"
3. ye baktık "d" bunu kaydettik
4. ye baktık "d" bunu kaydettik
5. ye baktık "z"
arama kayıdı olduğu için 1'i tuttuk diğer adresini kaydettiklerimizi diziden attık. Döngüyü 2.'den itibaren tekrar başlattık

2. ye baktık "h" aramak için kaydettik
3. ye baktık "z"
tekrar yok dizi aynı

n-1 kere tekrar ettiğimiz için "z" ye bakmadık.
Başlık: Ynt: python array hk. ben kafayı yemeden yardım lütfen
Gönderen: zamzam23 - 18 Temmuz 2021, 23:18:44
Alıntı yapılan: muhendisbey - 18 Temmuz 2021, 23:11:38Ben de çok iyi biliyorum diyemem, basitten gidelim. Üçüncü indisleri aynı olan array adreslerini nasıl buluruz?
1. ye baktık "d" aramak için işaretledik
2. ye baktık "h"
3. ye baktık "d" bunu kaydettik
4. ye baktık "d" bunu kaydettik
5. ye baktık "z"
arama kayıdı olduğu için 1'i tuttuk diğer adresini kaydettiklerimizi diziden attık. Döngüyü 2.'den itibaren tekrar başlattık
2. ye baktık "h" aramak için kaydettik
3. ye baktık "z"
tekrar yok dizi aynı
n-1 kere tekrar ettiğimiz için "z" ye bakmadık.

Algoritmasını ben de kurabiliyorum ama teşekkürler yine de.

Python numpy kütüphanesi ile yapılabilir ama nasıl?
Başlık: Ynt: python array hk. ben kafayı yemeden yardım lütfen
Gönderen: fide - 18 Temmuz 2021, 23:43:17
liste=[["a","b","c","d"],
       ["e","f","g","h"],
       ["k","l","m","d"],
       ["x","y","j","d"],
       ["p","r","s","z"]]

eklenecekler = []
filtered =[]
for i in range(len(liste)):
    if liste[i][3] not in eklenecekler:
        eklenecekler.append(liste[i][3])
        filtered.append(liste[i])

print(filtered)

pycharm ile denedim çalıştı.
İlk önce boş bir iste oluştur. Sonra 3. elemanları bu listede var mı diye kontrol et. varsa pas geç yoksa ekle. listenin tüm elemanları içinkontrolü yapınca mükerrerlerden kurutlursun.
Başlık: Ynt: python array hk. ben kafayı yemeden yardım lütfen
Gönderen: muhittin_kaplan - 19 Temmuz 2021, 13:02:38
sanırım aradığınız şunun gibi bir şey. (Burada sutün içinde değeri aynı olan satırları ayırmış.)
https://stackoverflow.com/questions/30189484/identify-vectors-with-same-value-in-one-column-with-numpy-in-python