2014年8月21日木曜日

アイカツ!LIVE☆イリュージョンに行ってきた

日曜日に行ってきたけど本当によかった。もう一度見たい。やって欲しい。もうこれに尽きるんだけど、だらだらと自分が書いて思い出してまた読み返した時に思い返したいというのも考えて書いておく。

最初の芸能人はカードが命というらしい、アイカツ!システムで変身する曲が流れてカウントダウンが始まったあたりですでに泣いた。なんかアイカツ世界へ行けるんだなっていうワクワク感がこの上なくあって体が震えてたと思う。で、ステージ真ん中の扉が開いてアイドルが出ていて踊ってて本当に感動した。なんかありえないというか、あのテレビとかで映ってるあのステージが目の前にあってテレビで映ってるあの観客がここだと思うと本当に夢のようだった。

あと、色が無線制御で変わるペンライト! すごい。自前でサイリウム持ち込んでた人いたけど正直邪魔だった。あれ本当に揃った会場見てみたい。たぶんファミリータイムだとそうなってたのかな。サイリウムを扇状にしてジュリアナみたいに振ってたオタク死すべし。曲に合わせてペンライト変わってたし、しかも手拍子とかそういうレベルの早さで。

だから一番楽しかったのはあかりちゃんのペンライトの使い方講座。あかりちゃんが「右、左、右、左って振ってね」ってので右左に振るとペンライトの色が右と左で色が変わったってのが楽しい。あかりちゃんめっちゃかわいかった。2015シーズン本当に楽しみです。

後ろの大学生っぽい二人組とかは「あおい姐さん」とか叫んでて、自分も「あかりちゃん応援してるよー」ってあかりちゃん出てくるときに言おうかと思ったら、もう感極まってて声が出なかった。

アンコールのSHINING LINE*、フルバージョンだったし、あかりちゃんも出てきたしで本当によかった。泣いてた。本当にあかりちゃん応援してます。

なんか本当に夢のようで、曲名とかもライブブックみないと思い出せないんだよね。ただ最後のいちごちゃんとあかりちゃんが挨拶するところで、ああバトンが受け継がれていくんだなあって感じはあった。twitterのフォローしてる人とかはSHINING LINE*の最後のサビであかりちゃんが出てきてバトンが渡されたって書いてあったけど、思い出せない。たぶん泣いてたから。SHINING LINE*好きな曲だったから。

物販はライブブックとトートバッグとサインライブタオルとあかりちゃんの衣装のキーホルダー。ただ、twitter見てるとハコライブ買っておけばよかったかなとか思った。というか買おうか迷ってる感じ。

twitterにも書いたけど、やっぱりアイドル物でこういうライブやったのアイカツ!が初めてだけど、アイマスが先陣切って欲しかったなと思いました。自分も途中からアイマスにはまってた層だけどあのライブ動画の感動が元だから。twitterでもアイマス好きだった人がかなりアイカツ!やってるのもそういうライブCG動画の進化がアイカツ!のほうが上だったからだようなあと思う。

とりあえず2015シーズンのあかりちゃん見るまでは死ねないので研究とかいろいろと頑張ろうと思いました。BGMはSHINING LINE*で「かなえたい今日の前で ココロが試される」んだから。

2014年8月1日金曜日

pythonで-infとか入っているデータを読み込んでnanに置き換え、その後nanに平均を代入する方法

pythonで文字と数字が混ざっていたり、空白があるデータ
#value1 value2 value3
1 2 3
4    5
6 -inf error
とかをpythonというかnumpyで読ませるにはgenfromtxtを使う。
空白や文字は自動的にnanになる。たぶん上の場合だと4 5 nanになるはず。「,」区切りで4,,5なら4 nan 5になる。

nanなら後はnumpyにあるnanmeanとかnanstdやscipyのscipy.stats.nanmedianとか使えば平均、標準偏差、中央値が出せるんだけど、-inf入ってるとこれは文字じゃなくてマイナス無限大として認識されるからやっかいって話。

genfromtxt自体は
data = numpy.genfromtxt('data.txt', comments="#", dtype="d")
みたいな感じ。dはdouble型のとき。dtypeは"f8"とかでfloat, "S5"でstring 10文字みたいにいじれる。さらにdtype=[('x','f8'), ('y','f8'), ('z', 'f8')]みたいにするとラベルつけられる。
http://retrofocus28.blogspot.com/2014/03/numpy.html
参照。
あとヘッダーがある場合はskip_header=5とかすると5行分飛ばす。

文字とか欠けているところがなかったらloadtxtでやったほうが楽かもしれん。
http://kaiseki-web.lhd.nifs.ac.jp/documents/Python/textfile.htm
http://pacocat.blogspot.com/2011/12/numpyloadtxt.html
参照。

で、置き換えするためにnumpy.whereで-infが入っているarrayを探す。
index = numpy.where(data, == float('-inf') )
で-infがある場所をindexする。たぶん上のdataの例なら
index=(array([2]), array([1]) )
か。

このindexを使ってfor文で-infをnanに置き換えしていく。
for i in range(len(index[0]))
  data[index[0][i]][index[1][i]] = float('nan')
という感じ。
index[0]がdata[0]に対応してindex[0][i]でindex[0]のarrayから1つずつ要素を取り出してくる。index[1]とdata[1]の関係も同様。で、=で代入。こんな感じでたぶん他で代入するときにもできるはず。

で、平均を測る。ここで測る平均は列の平均を測りたい。
average = numpy.nanmean(data, axis=0)
axisをつけないと全部の要素の平均、axis=0で列、axis=1で行の平均。というかpythonのarrayでの行と列、どっちがどっちだかいまだによくわかってねえ。
http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.nanmean.html
を見ること。

でnanに置き換えしたようにfor文使って平均に置き換えしていく。
for i in range(len(index[0]))
  data[index[0][i]][index[1][i]] = average[index[1][i]]
列の平均なのでindex[1]なのがミソ。

これでnumpy.savetxtで書きだす。
numpy.savetxt("test.txt", data)
たぶんこれもヘッダーつけたりとかオプションある。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html
http://airtoxin.wordpress.com/2013/02/02/numpy-savetxt%E3%81%A7csv%E5%87%BA%E5%8A%9B%E3%82%92%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
http://conta.hatenablog.com/entry/2013/12/02/183538
とか参照。

-infが入っててすげー疲れた。python雑魚が成長できたと思いました。