[Çözüldü] matris-dosyadan veri alma

Başlatan sirvailant, 06 Aralık 2017 - 22:52:56

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sirvailant

arkadaşlar selamlar,phytona yeni başladım ve söyle bi sorunla karşılaştım ; not pad'in içinde
2,13,2.256,4
3,5,4,2.25

(küçültülmüş haliyle) şeklinde verim  var ve bunlarla tek tek işlem yapmak istiyorum atıyorum 2.satırın 4. sütününu 4 e bölücem fakat 2.25 sayısı 2 şeklinde alıyor ....Bu verileri tek tek nasıl çekebilirim lütfen yardımcı olun

.py

Alıntı yapılan: sirvailant - 06 Aralık 2017 - 22:52:56
.Bu verileri tek tek nasıl çekebilirim lütfen yardımcı olun

aralarında virgül mü var ve stır satır float küsüratlı değerlerde var sanırım di mi?

sirvailant

Alıntı yapılan: .py - 06 Aralık 2017 - 23:11:42
Alıntı yapılan: sirvailant - 06 Aralık 2017 - 22:52:56
.Bu verileri tek tek nasıl çekebilirim lütfen yardımcı olun

aralarında virgül mü var ve stır satır float küsüratlı değerlerde var sanırım di mi?

evet hocam float sayılar içermekte ve virgülle ayrılmakta

.py

HIzlıca yazdım anlamadığın kısım olursa sorabilrisin.


# -*- coding: utf-8 -*-
#!/usr/bin/env python
dosya = open('data.log')
kaynak = dosya.read()
satir = kaynak.splitlines() #satırlar
dosya.close()
for test in satir:
print('satir '+str(satir.index(test)), test.split(',')) # test.split(',') virülle ayrılmış veriler

sirvailant

Alıntı yapılan: .py - 06 Aralık 2017 - 23:21:22
HIzlıca yazdım anlamadığın kısım olursa sorabilrisin.


# -*- coding: utf-8 -*-
#!/usr/bin/env python
dosya = open('data.log')
kaynak = dosya.read()
satir = kaynak.splitlines() #satırlar
dosya.close()
for test in satir:
print('satir '+str(satir.index(test)), test.split(',')) # test.split(',') virülle ayrılmış veriler


hocam matrisi bu şekilde yazdırdım sorunsuz çalıştı fakat benim istediğim bu matrisin içinde işlem yapmak sizin yazdığınız kodda print(kaynak[0][0]) yazdığımda 0 sonucunu aldım fakat kaynak[0][1] olarak dğeiştirdğimde hata alıyorum

.py

bir dakika istediğin şekide yapmaya çalışıcam sen bu değerleri bir matriste istiyorsun anladığm kadarıyla

sirvailant

dosya=open("data.txt","r")
liste=dosya.readlines()
end=len(liste)
for i in range(0,end):
    print(liste)
ben bu şekilde matrisi yazdırabiliyorum düzenli halde fakat print(liste[0][1]) yazdığımda virgül çıktısını alıyorum ben sadece float ve int larla işlem yapmak isyitıorum veyahut liste[0][2] yazdığımda 1 değilde 14 sayısını görmek istiyorum

.py


dosya = open('data.log')
kaynak = dosya.read()
satir = kaynak.splitlines() #satırlar
dosya.close()
matris = {}
for enum, test in enumerate(satir):
matris[enum] = test.split(',')
print(matris[0][0])

sirvailant

Alıntı yapılan: .py - 06 Aralık 2017 - 23:38:12

dosya = open('data.log')
kaynak = dosya.read()
satir = kaynak.splitlines() #satırlar
dosya.close()
matris = {}
for enum, test in enumerate(satir):
matris[enum] = test.split(',')
print(matris[0][0])

hocam oldu valla çok teşekkür ediyorum fakat anlatma şansınız var mı acaba??

.py

Her satır için enumerate kullandım bu satırlara numara atıyor  test.split(',') den dönen değer bir dizi bu diziyide döngü kaçıncı satırdaysa o matrise atadım

sirvailant

Alıntı yapılan: .py - 06 Aralık 2017 - 23:50:13
Her satır için enumerate kullandım bu satırlara numara atıyor  test.split(',') den dönen değer bir dizi bu diziyide döngü kaçıncı satırdaysa o matrise atadım
hocam benim yazdığım kodda ufak tekef değişikler yaparak sorunu çözme şansımız yok mu ? çok kafamda oturtamadım bu olayı

.py

Alıntı yapılan: sirvailant - 06 Aralık 2017 - 23:53:01
hocam benim yazdığım kodda ufak tekef değişikler yaparak sorunu çözme şansımız yok mu ? çok kafamda oturtamadım bu olayı

nerrde kullanaksın kafandakini bilemediğim için ilerleme yavaş olabilir.:) Bak şimdi bendeki data şu şekilde


10.0, 10.5, 7.2, 6.6, 8.0
5.0, 11.6, 5.1, 11.8, 7.9


5e2 matris

matrisden data çekmek için matris[0][1] yazman yeterli oluyor yada matris[1][3] gibi
matrisi 0 dan başlattım buarada yapmak istediğin tam olarak nedir?

sirvailant

hocam son yazdığınız program tam olarak istediğim gibi ve sorunsuz bi şekilde çalışıyor ama enumarete fonksionunu hiç bilmiyorum ve tam olarak prgramın nasıl çalıştığını kavrayamadım.daha basite indirgeyerek yazma şansımız yok mu

.py

Alıntı yapılan: sirvailant - 07 Aralık 2017 - 00:03:36
hocam son yazdığınız program tam olarak istediğim gibi ve sorunsuz bi şekilde çalışıyor ama enumarete fonksionunu hiç bilmiyorum ve tam olarak prgramın nasıl çalıştığını kavrayamadım.daha basite indirgeyerek yazma şansımız yok mu

enumarete dizi elemanı kadar sayı üretir mesela dizimiz 10 elemanlı olsun 0 dan 9 a kadar sayı üretir ama ben len fonksiyonunu kullanarak yapmalıyım diyorsan istediğin şeklide len ile yazalım ok:)

sirvailant

Alıntı yapılan: .py - 07 Aralık 2017 - 00:08:15
Alıntı yapılan: sirvailant - 07 Aralık 2017 - 00:03:36
hocam son yazdığınız program tam olarak istediğim gibi ve sorunsuz bi şekilde çalışıyor ama enumarete fonksionunu hiç bilmiyorum ve tam olarak prgramın nasıl çalıştığını kavrayamadım.daha basite indirgeyerek yazma şansımız yok mu

enumarete dizi elemanı kadar sayı üretir mesela dizimiz 10 elemanlı olsun 0 dan 9 a kadar sayı üretir ama ben len fonksiyonunu kullanarak yapmalıyım diyorsan istediğin şeklide len ile yazalım ok:)

Hocam valla değerli zamanınızı ayırdınız çok teşşekkür ederim,ne kadar basite indirgersek o kadar iyi benim için :)

.py

Alıntı yapılan: sirvailant - 07 Aralık 2017 - 00:09:35
Hocam valla değerli zamanınızı ayırdınız çok teşşekkür ederim,ne kadar basite indirgersek o kadar iyi benim için :)


dosya = open('data.log')
kaynak = dosya.read()
liste = kaynak.splitlines()
dosya.close()
matris = {}
end = len(liste)
for i in range(0, end):
matris[i] = liste[i].split(',')


readlines fonksiyonu dosyadaki altsatır '\n' karekterinide çeker bu yüzden splitlines fonksiyonunu kullanıyorum ok?

sirvailant

hocam splitlines fonksiyonunu kullanmama şansımız yok o zaman değil mi ?

.py

Alıntı yapılan: sirvailant - 07 Aralık 2017 - 00:27:50
hocam splitlines fonksiyonunu kullanmama şansımız yok o zaman değil mi ?

malesef splitlines kullanmak zorundayız
readlines ve splitlines farkını anladınız sanırım

şöylede yapabiliriz data çekerken replace ile altsatır '\n' kareketirini temizleyerek datayı çekedebiliriz ama sırf readlines kullanmak için bunu yapmak mantıklı değil.



sirvailant

#18
anladım hocam fakat matris={} bu şekilde neden tanımlıyoruz onu anlayamadım malesef:/


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 07 Aralık 2017 - 00:37:29

biraz inceleyince anladım hocam tamamdır çok teşekkür ederim anladım neden string tanımladğımızı sağolunn

.py

Alıntı yapılan: sirvailant - 07 Aralık 2017 - 00:34:03
anladım hocam fakat matris={} bu şekilde neden tanımlıyoruz onu anlayamadım malesef:/


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 07 Aralık 2017 - 00:37:29

biraz inceleyince anladım hocam tamamdır çok teşekkür ederim anladım neden string tanımladğımızı sağolunn

dizi kullanarakta yapılabilirsin ama biraz karışık dictionary {} kullanarak daha basit
{} kullanımı anlaman için bir örnek vereyim aşağıdaki örnekte matirs[0] 10.5, 11.6, 9.7 değerlerini tutuyor matris[0] ı çağırdığında bu değerleri çekiyorsun

matris = {0:[10.5, 11,6, 9.7]}

sirvailant

hocam dizi olarakta kullanımını öğrenirsem çok daha yaararlı olur benim için onuda yazarsanız çok sevinirim

.py

#21
dosyadan çektiğimiz datalar string dataları float olarak çekmek istersek şöyle bir kod kullanabiliriz.


dosya = open('data.matrix')
dosya = open('data.log')
kaynak = dosya.read()
liste = kaynak.splitlines()
dosya.close()
matris = {}
end = len(liste)
for i in range(0, end):
flt = [float(flt) for flt in liste[i].split(',')]
matris[i] = flt
print(matris[1][1], type(matris[1][1]))


sirvailant

hocam çok teşekkür ediyorum değerli vaktinizi ayırdğınız için gerçekten çok yardımcı oldunuz

.py

Alıntı yapılan: sirvailant - 07 Aralık 2017 - 01:04:55
hocam çok teşekkür ediyorum değerli vaktinizi ayırdğınız için gerçekten çok yardımcı oldunuz

Ben teşekkür ederim öğrenmek isteyen için herzaman yardım için buradayım kolay gelsin.