Monday, January 18, 2016

Bellek Dosyalari - /dev/shm

Tum Unix sistemlerinin takip ettigi POSIX standartina gore /dev/shm dizini altina yazilan tum dosyalar hafizada islem gorur, diske yazilmaz. Bu ozelligin bazi faydalari var; dosyadan okuyacak, dosyaya yazacak sekilde kodlanmis pek cok yazilim var etrafta, bu yazilimlara mesela diger bir dil uzerinden erismek icin veri transferi ozel kodlamasi gerekebilir, bu da kulfetli olabilir. Mesela Python wave, scipy.io.wavfile.read cagrilari, bunlar pur dosya IO'su  icin kodlanmis, ama surekli olarak hizli bir sekilde bu ikisi arasinda alisveris istiyorsak, transferi direk /dev/shm uzerinden yapmak problemi cozer.

Wednesday, January 13, 2016

Python ile Finans Verileri

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') 

Python Öğrenelim

Python dilini Turkce ogrenmek icin bir kaynak alttadir. Bu dokumanda kurulus bilgileri var, biz de bu konuda Anaconda baslikli bir makale yazmistik.

Baglanti

Matematik, veri analizi icin cok kullanilan iki paket numpy ve pandas paketidir. Bunlar hakkinda iki makalemiz altta,

Numpy

Pandas

Python öğreten bazı video dersleri

YouTube

Giriş derslerinde çoğunlukla işlenmeyen Pyhon konuları hakkında bazı yazılar,

Üreticiler (Generators), Yield
Birim Testler
With
imap
izip

Wednesday, January 6, 2016

Shalizi Kitabı

Bir kitabın Acknowledgements bölümüne geçmek için kitapta hata bulmak yetiyormuş demek ki :) ünlü istatistikçi Cosma Shalizi'nin Advanced Data Analysis from Elementary Point of View kitabının Acknowledgements bölümünde bahsediliyoruz. Bir formül hatasını hocaya bildirmiştik.

Kitap

Tuesday, January 5, 2016

pyaudio

Bilgisayar mikrofonundan ses verisi almak icin pyaudio kullanilabilir. Kurmak icin Ubuntu uzerinde once

sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev

Sonra

pip install pyaudio

Ornek kod

import pyaudio
import wave

CHUNK = 1024 
FORMAT = pyaudio.paInt16 #paInt8
CHANNELS = 2 
RATE = 44100 #sample rate
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK) #buffer

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data) # 2 bytes(16 bits) per channel

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()