Thursday, October 18, 2012

Zaman Kolonlari Arasindaki Farki Gun Olarak Gostermek

Postgresql tabaninda timestamp tipindeki iki tarih (kolonu) arasindaki farki hemen eksi (-) isareti kullanarak hesaplamak mumkundur. Bu yapildigi zaman sonuc gayet detayli bir sekilde 'su kadar yil, su kadar gun, .. ' gibi bir tanimi iceren bir sonuctur.  Yani en basit ornek soyle:

select tarih1::timestamp - tarih2::timestamp from ..

Eger zamanlar arasindaki farki tek bir sayiya indirgemek istiyorsak, o zaman farki epoch (saniye) tipine, ve oradan dakika, saat, vs gibi bolum yaparak istedigimiz sayiya cevirmemiz gerekli. Mesela gun istiyorsak,

select cast(extract('epoch' from tarih1::timestamp - tarih2::timestamp) as numeric) / 60 / 60 / 24 
from ..

Thursday, October 4, 2012

Bir Vektorun Kismi Toplamini Almak

Diyelim ki bir Numpy vektorunun tum elemanlarini degil, ucer ucer bloklar halinde toplamak istiyoruz. Kullanilacak komut add.reduceat komutu.

import numpy as np

a = np.array([1,2,3,4,5,6])
print np.add.reduceat(a,[0,3])


[ 6 15]

sonucunu verir. Yani sifirinci ve ucuncu indis arasindaki bir toplam, ucuncu ve vektor sonuna kadar olan bolum baska bir toplam haline geldi. Geri dondurulen sonuc her zaman verilen indis matrisi ile esit olacaktir.