よつぴいてひやふつと射る

きぎょうででけんきゅうしています

pythonデータ可視化ライブラリseabornのインストール

備忘録として。

matplotlibのラッパーの一つであるSeabornのインストールが、

>pip install seaborn

ではエラーが出てできなかった。

以下URLからwhlを落としてきて、

Python Extension Packages for Windows - Christoph Gohlke

>pip install c:\seaborn-0.7.1-py2.py3-none-any.whl

で終了。

Windows10 64bit + GPU の環境でTensorflow使えた

 過去にこんな記事を書いていました。

 

yasumonoe.hateblo.jp

 

 が、使えるようになったみたいです。

qiita.com

ついにwindowsでtensorfloが使えるようになりました。

環境設定は上記参照ですが、cudaのバージョン合わせとインストールの順番を守れば簡単です。Ubuntuのようにソースを落としてビルドから…のようなことはありません。

まだmnistで遊んでる段階ですが、早く精進したいです。

Windows10 64bit + GPUの環境では Tensorflow は使えない

タイトル通り、無理でした。

 

何を血迷ったか、ふと思い立ってTensorflowを使ってみたくなりました。

ちょうどいいことに、FPSを休止してから手持ち無沙汰のGPU GTX560Tiちゃんが、我がPCには鎮座ましましております。

 

しかし、Tensorflow自体がWindowsに対応しておらず、無理やり動かす方法としてDocker使う方法、Vagrant使う方法いろいろあるみたいだけど、結局仮想マシンじゃCUDAは使えませんでした。

CPUだったら計算できたんだけどね。

やっぱりGPU使いたいじゃん?

linux使うしか無いんだね・・・ってことに気づくまで1週間くらいかかりました。

車を購入しようと思う―中古車市場の相場を調べる

諸々の理由により車を購入しようと思う。車種は、諸々の理由からマツダCX-5にしようと思っている。しかしCX-5は高い。そして2015年のMC後にさらに値段が上がってしまった。上位グレードのXD PROACTIVE(ディーゼル、自動ブレーキ付き)でも選ぼうものなら350万は軽く吹っ飛んでしまう程に高い。下位グレードの20S(ガソリン、自動ブレーキなし)でも車両本体だけで250万近くはかかってしまい、金のない私にとっては、おいそれと手が出せない価格である。私は車も欲しいが、自転車も植物栽培もアクアリウムもカメラも天文も投資もやりたいのでそんな余裕は無い!

そこで中古車・新古車となるわけです。なんとかセンサーや、マツダユーカーなんとか、といった中古車サイトを当たりましたが、どうも相場がつかみにくい。いや、価格.com行けば年式-価格や走行距離-価格の関係がマップで表示されているのですが、グレードや修復歴の有無に関係なく表示されているのでわかりにくいんですね。私が欲しいのは、20Sで修復歴の無い車なのです。

というわけで、pythonの勉強がてら、某中古車情報サイトからスクレイピングしてくれるコードを書いてみた。素人のコードなので、汚い・無駄が多いのは見逃してください。

以下のコードでは、CX-5全車種、修復歴なし、衝突被害軽減ブレーキ有、フィルターしている。
上記以外の場合はtarget_urlをいじれば大丈夫。

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-

import lxml.html
import requests
import csv
import datetime

car_urls = []
for i in range(1,100):
    target_url = 'http://www.carsensor.net/usedcar/search.php?STID=CS210610&SORT=2&CARC=MA_S087&YMIN=2012&OPTCD=REP0*PCS1&DLR=1&PAGE='+str(i)
    try:
        root=lxml.html.parse(target_url).getroot()
        els =[el.get('id') for el in root.cssselect('#bukkenCas div')]
    except:
        break
        
    ids = [i for i in els if i]
    for id in ids:
        car_urls.append('http://www.carsensor.net/' + root.cssselect('#'+ id +' a')[0].get('href'))


#List for write to CSVfile
car_info = [[]]
car_info[0] = ['本体価格', '支払総額', '年式', '走行距離(万km)', '車検有無', '車検残', '修復歴', '地域']

#Get each car info and Append to csv list
for car_url in car_urls:
    root=lxml.html.parse(car_url).getroot()
    res = root.xpath('string(//div[@class="l-box bknDtl_info"])').replace('\t','').replace(' ','')
    res = [r for r in res.split('\n') if r]
    res  = [r for r in res if r]
    #print(res)
    kyori = res[res.index('走行距離')+1]
    if '万' not in res[res.index('走行距離')+2]:
        kyori = (float(kyori) / 10000)
        
    td = datetime.datetime.today()    
    syaken_y = res[res.index('車検有無')+1].split('(')[0]
    syaken_m = res[res.index('車検有無')+2].strip('年').strip('月')
    if '整備付'in syaken_y:
        syaken_y = str(td.year + 2)
        syaken_m = str(td.month)
    elif '整備別'in syaken_y:
        syaken_y = str(td.year)
        syaken_m = str(td.month)

    syakenzan = (int(syaken_y)-td.year)*12 + (int(syaken_m)-td.month)
    
    car_info.append([res[res.index('本体価格')+1].strip('万円'),
                     res[res.index('支払総額')+1].strip('万円'),
                     res[res.index('年式')+1],
                     kyori,
                     syaken_y + '/' + syaken_m,
                     syakenzan,
                     res[res.index('修復歴')+1],
                     res[res.index('地域')+1]
                    ])
print(car_info)

with open(u'E:\\CAR\\car_info.csv', 'w')as f:
    writer = csv.writer(f,lineterminator='\n')
    writer.writerows(car_info)

car_infoを適当にプロットするとこんな感じ。

年式-本体価格の関係
f:id:vitaaeterna:20160730165306p:plain

 

走行距離-年式-本体価格の関係
f:id:vitaaeterna:20160730165301p:plain

これを見ると、走行距離も年式も少ない所謂新古車は、たいして安くなってないことがわかる。
また、走行距離だけに関していえば、20万円/10000km くらいの割合で安くなっているように見える。新車本体300万円とすると、15万km走行での減価償却を想定してのことなのか?

とりあえず、車を購入するときはこの図と見比べて値段の妥当性を判断しよう。

次にやること候補としては、
 ・グレード別の価格調査
 ・走行距離や年式を機械学習させて、本体価格を出すプログラムを作る。
はい…機械学習とか面白そうだから…手を出してみたいんですよ…

Win10 64bit での Python TA-Lib のインストール

windows10 64bit, python3.5, VisualStudio Community 2015の環境でTA-Libをインストールしようとしたらやっぱり躓いた!

結構長時間ハマってたので備忘録として残しておきます。

 

①ta-libの入手 http://ta-lib.org/

zipの中身を、私の場合はE:\ta-libに展開。

②Cコンパイラのインストール

ちなみにこの時点で python -m pip ta-libとしても、vcvarsall.batが見つからない、といったようなエラーが出る。

調べると、VS2015をインストールしただけではCコンパイラはインストールされていないらしい!!

ここで相当時間を消費した!

解決方法は、VS2015起動→プロジェクト新規作成→C/C++プロジェクト作成 って選択すると、インストールの項目が表示されるのでそれに従うだけ。

python -m pip ta-lib するが…

f:id:vitaaeterna:20160529230855j:plain

LNK1120がでて死亡。

 

Python Extension Packages for Windows - Christoph Gohlke

からコンパイル済みの.whlを落としてきて、python -m pip install *.whl

(私はE:\直下にダウンロードしました。)

f:id:vitaaeterna:20160529230852j:plain

やったね^^

2015年GW デンマーク・フィンランド旅行2

前回から3か月近く経ってしまいました。いつごろ書いてんだって感じですね。

 

では、デンマークの続きから。。。

 

f:id:vitaaeterna:20160208164045j:plain

こちらはデンマーク国立博物館。なんとコスプレ展をやっていました!日本語まで書かれてる。

残念ながら当日は閉館していて中に入ることはできず。前を歩いていた日本人女性の方も残念そうでした。

 

f:id:vitaaeterna:20160208164120j:plain

デンマークの警官はチャリもかっこいいのに乗ってました。さすがのチャリ先進国です。

 

f:id:vitaaeterna:20160208164153j:plain

f:id:vitaaeterna:20160208164159j:plain

ホテルから晩御飯を食べに行こうとしていると、デンマーク中央駅(後ろの赤レンガの建物です)の裏手で何かの団体の行列に遭遇。平和団体か何か?

f:id:vitaaeterna:20160208164224j:plain

いざ、フィンランドへ!

f:id:vitaaeterna:20160208164254j:plain

フィンランドの街並み。歴史的な影響からなのか厳寒地方だからなのかはわかりませんが、第一印象は「ロシアっぽい」でした。

f:id:vitaaeterna:20160208164321j:plain

ロシアといえば最近日本でも有名になってきたマリメッコ。日本では若者向けというイメージですが、フィンでは若い女性もおばちゃんも使っているのを見かけました。

ここマリメッコ本社は、ヘルシンキ中央から地下鉄でHarttoniemi駅まで移動+駅から徒歩20分ほど離れているにもかかわらず日本人であふれていました。

f:id:vitaaeterna:20160208164408j:plain

f:id:vitaaeterna:20160208173939j:plain

f:id:vitaaeterna:20160208164603j:plain

ヘルシンキのマーケット広場です。そのまんまの名前ですが、現地の地図でも同じ表記だったのでおそらくこれで正式名です。イチゴが売られていましたがスペイン産でした(フィン産なら買ってた)。屋台で軽食も食べられる(イートイン)ので食事ポイントとしても便利です。ここも観光客が多く、日本人のおばちゃんがわいわいしていました。

近くにシリアラインの発着場があります。今回は日程の都合で乗れませんでしたが、次回があればぜひ乗ってフィヨルドツアーとか行ってみたい!

f:id:vitaaeterna:20160208171829j:plain

おまけ1)ヘルシンキ市内の自転車道です。車道と自転車道との間に建てられたポールが自転車道施設に対する強い意志を感じさせますね、さすがフィンランド

f:id:vitaaeterna:20160208173955j:plain

おまけ2)ホテル近くにあった日本食店。なぜ「ばっかり」なのか・・・

f:id:vitaaeterna:20160208174024j:plainおまけ3)ヘルシンキバンター空港