得到了一個關於如何使用python blaze模塊進行分析的簡單問題。 所以,我試圖做到這一點代碼:列之間的相關性python blaze
from blaze import SQL,Table
from sqlalchemy import create_engine
from scipy.stats import pearsonr
sql_path=r'/path/to/my/database.db'
e=create_engine('sqlite:///%s'%sql_path)
blz_sql=SQL(e,'analysis_dataframe')
blz_frame=Table(blz_sql)
blz_cols=blz_frame.columns
corr=pearsonr(blz_frame[blz_cols[0]],blz_frame[blz_cols[10]])
print(corr)
,在這裏我得到這個錯誤:
TypeError: len() of unsized object
閱讀一些大火文檔後,我發現這個問題是關於殺出列轉換爲一些像這樣的結構:
import pandas as pd
from blaze import into
df=into(pd.DataFrame,blz_frame[blz_cols[0]]
但是,這種轉換使列表列上的pearsonr的迭代計算更慢。 那麼,我怎麼能簡單地將blaze列轉換爲np.array來使用計算(如pearsonr或statsmodels.api.Logit(blz_frame.y,blz_frame [[train_cols]])呢?) 如果有意義,米蟒蛇使用的Python 3.4,我的版本殺出:
import blaze
print(blaze.__version__)
#returns 0.6.3
謝謝你的回答! 現在我使用簡單轉換閃耀陣列和ndarray通過**到**函數。似乎在這種情況下轉換爲ndarray更好。 – IPolar 2014-11-04 20:24:36