Sahipleri : Burak Bayramlı
Finans verilerini indirmek, islemek Python uzerinde iyice basitlesti.
Finans verilerini indirmek, islemek Python uzerinde iyice basitlesti. Veri isleme amacli baslatilan Pandas'in yazari zaten projesini ilk basta zaman serilerileri / finans verisi islemek icin baslattigini soylemisti. Bu yakinlik devam etmis anlasilan, su anda Yahoo Finance, Google Finance, hatta makroekonomik veriler icin FRED baglantisi var. Hatta birisi opsiyon (option) verisi indirecek kodlari bile eklemis - acik yazilimin faydalari. Bazi ornekler altta,
Senet verisi, mesela MSFT
import pandas as pd, datetime
import pandas.io.data as web
start=datetime.datetime(2013, 1, 1)
end=datetime.datetime(2015, 9, 30)
s = web.DataReader("MSFT", 'yahoo', start, end)
Kaynak icin google gecilirse veri oradan gelecek.
Opsiyonlar
from pandas.io.data import Options
aapl = Options('AAPL',"yahoo")
df = aapl.get_options_data()
Makroekonomik Veriler ve Digerleri
Alttaki ornek ABD/Avro doviz kuru icin; issizlik, enflasyon, vs. gibi pek cok veri mumkun.
ex = web.DataReader('DEXUSEU', 'fred')
Kaynaklar
Alıntı Kaynağına Gitmek İçin Tıklayınız
Sahipleri : Burak Bayramlı
Python paketleri kaynaklardan kurarken ana dizinine gidip
python setup.cfg build install
ile derleyip kurulusunu yapariz. Fakat bazen alternatif bir dizin icinde, ayni paketin ama degisik kaynak kodlari (mesela bir gelistirme branch'i) uzerinde calismamiz gerekirse, ana pakete degil, Python'un bu gelistirme yaptigimiz ikinci dizini isletmesi icin test script icinde en basta su satirlar yeterli:
import sys
sys.path.insert(0, '/benim/gelistirme/dizinim/paket')
Boylece alternatif dizin tum sys.path icindeki dizinlerden "once" gelecek, ve kurulumu yapilan degil belirttigimiz ikinci dizin isleme konacak.
Bu yontemlerden sadece biri, en cabuk ve gecici olani. Degisik yaklasimlar olabilir.
Alıntı Kaynağına Gitmek İçin Tıklayınız
Sahipleri : Burak Bayramlı
Python ile bir listeyi gezdigimiz anda gezdigimiz listeden eleman silersek, gezme islemi negatif sekilde etkilenmis olacaktir
Python ile bir listeyi gezdigimiz anda gezdigimiz listeden eleman silersek, gezme islemi negatif sekilde etkilenmis olacaktir. Mesela soyle bir kod dusunelim:
list = [["1","1"], ["2","2"]]
for item in list:
print item
if ["1","1"] in list: list.remove(["1","1"])
Bu kod sadece ['1', '1'] sonucunu basacaktir, cunku gezme sirasinda bir eleman (['1', '1']) silinmistir, ve bu listeyi kucultmustur.
Eger silme isleminin gezme islemini etkilememesini istiyorsak, o zaman listenin bir "kopyasi" uzerinde gezinti yapmamiz lazim. Python'da kopya cikartmak icin clone, copy gibi cagrilar yerine bir operator kullaniliyor; bu operator [:] operatoru. O zaman:
list = [["1","1"], ["2","2"]]
for item in list[:]:
print item
if ["1","1"] in list: list.remove(["1","1"])
istedigimiz sonucu verecektir.
Alıntı Kaynağına Gitmek İçin Tıklayınız
Sahipleri : Burak Bayramlı
Python ile String parcalarini biraraya getirmenin birkac yolu vardır
Python ile String parcalarini biraraya getirmenin birkac yolu var. Bunlardan en basiti ve ilk akla geleni + isaretini kullanmaktir:
s = "aaa" + "-" + "bbb" + "-" + "ccc"
print s
Sonuc aaa-bbb-ccc olacak. Diger bir yontem yerine gecen String (subsitution) yontemi. Bu yontem aslinda C/++ dilinde bilinen sprintf mantigina benziyor. Format belirleyen bir kisim var, bir de formatin tanimladigi yerlere yeni degerler parametre olarak gecilen degerler var, ve bu degerler ile yeni bir String olusturuluyor. Ornek:
s = "%s-%s-%s" % ("aaa","bbb","ccc")
s ekrana basildiginda ilk ornekle ayni sonucu gorecegiz. Bu kullanimin birkac avantaji var, String tipini temsil eden %s yerine diger tipler de kullanilabilir, mesela float'lari temsil eden %f. O zaman hem String birlestirme hem de tiplere gore formatlama ayni anda yapilabilecektir. Ornek:
s = "Burada bir float deger var: %f" % (3.43455)
Bu ornekte 3.43455 degeri %f yerine koyulmus olacak ve ekrana
Burada bir float deger var: 3.434550
basilacak. %f daha sofistike sekilde de kullanilabilir. Mesela:
s = "Burada bir float deger var: %3.2f" % (3.43455)
Bu formatlamaya gore float degerini noktadan sonra sadece 2 basamak olacak sekilde ayarladik. O zaman sonuc:
Burada bir float deger var: 3.43
olacaktir.
Alıntı Kaynağına Gitmek İçin Tıklayınız
Sahipleri : Burak Bayramlı
Meshgrid fonksiyonu 2 kordinat vektoru alir ve geriye 2 kordinat matrisi dondurur
Bu fonksiyon 2 kordinat vektoru alir ve geriye 2 kordinat matrisi dondurur. Diyelim ki 3 boyutlu bir fonksiyon hesaplatacagiz, fonksiyon alani ise x kordinati -5 ve 5 arasinda, y kordinati -3, 3 arasinda olacak. O zaman bu araliktaki her noktanin kombinasyonu bize lazim. Bu kombinasyon [-5,-3], [5.1,-3],..,[-5,-3.1] diye gidecekti.
meshgrid fonksiyonunun yaptigi bu kombinasyonu rahat erisilir hale getirmekten ibaret. meshgrid cagrisindan geri gelecek X ve Y matrislerinde X[1] ve Y[1]'e baktigimizda (her iki tarafta ayni indisi kullandigimizda yani) kombinasyonlardan birini aninda alabilecegiz. Ornek
x = np.arange(-5, 5, 0.1)
y = np.arange(-3, 3, 0.1)
xx, yy = np.meshgrid(x, y)
z = np.sin(xx**2+yy**2)/(xx**2+yy**2)
Bu kodda meshgrid'den gelen xx ve yy uzerinde direk indis kullaniliyormus gibi gozukmuyor, fakat arka planda aslinda kullaniliyor. xx ile yy uzerinde aritmetik islemler kullanilinca, bu otomatik olarak her xx ve yy elemanin teker teker, ayni indiste olanlarinin beraber isleme sokulmasi demektir, +, -, ** gibi islemler perde arkasinda buna gore kodlanmistir.
Alıntı Kaynağına Gitmek İçin Tıklayınız