0:00 就寝。裏シナリオクリアしたかったが実力不足だ。明日はクリアしよう。

またぞろ 4:00 くらいに目が覚めて、寝たり起きたりを繰り返して起床時刻 7:05 になる。 納豆と白飯をかっこんで出勤。仕事終わりにすぐに部屋に戻りたいので PC は持っていかない。 明日は図書館休みなのだがそうなってしまう。

7:45 管理人室入室。資源ゴミ搬出といつもの清掃。 久しぶりにうるさ型の年配の住人に遭遇してしまう。 遭遇前に彼の部屋の前に置いてあったゴミを集積所に持っていっておいて良かった。 今回は穏やかに話が進み、かんたんな要望を受け取るだけで済む。

10:00 Last Wave の音とともに終了。業務報告をして撤収。 イトーヨーカドー曳舟店に立ち寄って、書店で雑誌チェック。ひし形センパイみたいになりたいものだ。 あとはトイレ利用。いつも何も買っていない気がする。悪いな。

10:45 曳舟の部屋に戻る。PC を開く。アレを再開する。

11:35 地獄の伯爵令嬢の逆襲のサブシナリオその 5 リオーネ撃破。 最後のターンで残り HP が 3 ケタになったから油断したら後列二人が一気に倒されてギリギリになった。

11:50 サブシナリオのたぶんラスボスが少し戦っただけで何かがおかしいとわかる強さだ。 アイテムを全部揃えてくるか?

12:25 おやつ休憩を挟んで再開。12:50 なんとかサブシナリオその 6 のファルコを撃破。 アイテムをまったく使わないでよくやった。 ネタバレになるから詳しくは語らないが、こちらの手数は多くない。 そして最後の装備品はひじょうにアクが強い。どう使う?

13:10 エンディングを迎えてゲームオーバー。あとでサブシナリオ攻略用のセーブデータを仕込もう。

メールチェック。応募先から返信がもうあった。今から数日審査するから待てとのこと。

14:15 疲れたので昼寝。15:15 起きる。16:00 外出。押上駅バスターミナルに直行。

16:50 タイトー F ステーションオリナス錦糸町店。6 クレ。 ビートマニアをワンプレイ。花冠、最後から 2 小節目が難しいだけか?

MJ プロ卓東風戦。本日最後のゲームでラス親。配牌のあまりの酷さに頭がくらくらする。 嵌張を邪魔ポンされたりしてげんなりして終了。

【SCORE】
合計SCORE:-59.4

【最終段位】
四人打ち段位:魔神 幻球:7

【1/20の最新8試合の履歴】
1st|--*--*--
2nd|----*---
3rd|**----*-
4th|---*---*
old         new

【順位】
1位回数:2(20.00%)
2位回数:1(10.00%)
3位回数:5(50.00%)
4位回数:2(20.00%)
平均順位:2.70

プレイ局数:50局

【打ち筋】
アガリ率:12.00%(6/50)
平均アガリ翻:3.83翻
平均アガリ巡目:9.83巡
振込み率:4.00%(2/50)

【1/20の最高役】
・跳満

19;40 カスミオリナス錦糸町店。584 円。

  • 野菜ジュース (900)
  • ライス
  • ソース焼きそば
  • 海老入り焼きそば
  • ブラックチョコ

20:00 ビッグエー墨田業平店。208 円。

  • おにぎりねぎとろ
  • 大きなりんごデニッシュ
  • ポテコうましお

20:15 曳舟の部屋に戻る。晩飯を食いながら麻雀の練習。 安いから買ってきた焼きそば 2 パックは食い過ぎ。しかしこういう好機は逃してはならない。

21:15 テザリングタイム終了。イルベロ 90 億のキャプチャーどうもありがとう。 Pandas の学習を再開する。残りの章はあとわずか。

22:05 入浴。22:40 風呂から出る。Pandas ノートのやり残りを片付けて地獄の伯爵令嬢の逆襲へ。 新アイテムの調査をしよう。

23:55 新アイテム、新パッシブの調査終了。これを見て思いついたことがいくつかできた。 そして誤ってセーブデータを上書きしてしまう。 まあいい。残りは新コマンドと新キャラの調査だから、どうせサブシナリオのために初めからのデータが要るのだ。

地獄の伯爵令嬢の逆襲 v1.10 プレイノート

サブシナリオはいったんクリアすると、そのセーブではもうやれない。これは気をつけよう。 したがってイラスト集にお目にかかれないことになる。もったいない。

ビビアンに先述の最後の装備品を着けてラスボスに挑む。ほんとうに無敵になるのか? 開幕直後、3 ターン目でライトニングボルトで普通にダメージを受けて絶命。ダメだ。 戦闘としては残りをクロエが少し頑張れば勝利するので問題はないが。

エンディングはイラストが数点差し替わっている。 そしてタイトル画面に戻る直前に何かが追加されている。これは一体?

Pandas Note

巨大なデータセットの取り扱い方。

  • Scaling to large datasets
    • Load less data
      • ディスクから必要なデータしかロードしないのが望ましい。
      • 欲しい列を限定できる状況であれば、キーワード引数 columns で絞れる。
        • pd.read_csv() ならば usecols で絞る。
    • Use efficient datatypes
      • 特に文字列型の列について、値の集合が限定されているのならば Categorical に変換するのがよい。 .astype('category') を呼び出して消費メモリーを減らす。
      • 数値型について、サイズが小さくできることがわかっていれば pd.to_numeric() のキーワード引数 downcast でそのような型を指定する。
    • Use chunking
      • メモリーに収まるだけの量に分割して処理するという基本的な技法だ。 英語では an out-of-core algorithm というようだ。
      • pd.read_csv() など、いくつかのロード関数は chunksize というキーワード引数を提供している。
    • Use other libraries
      • Pandas がデータフレーム API を提供するライブラリーでは標準的である。 ただし他にもそのようなライブラリーは存在する。
      • この節は Pandas 開発陣が競合?ライブラリーをどう考えているのかが窺えて興味深い。

疎行列の一般化概念? データセットの大半が同じ値であれば、圧縮するという考え方は筋が良い。 これによりメモリー効率が上がる。Pandas にはそのための Sparse というデータ型が存在する。

  • Sparse data structures
    • SparseArray
      • pd.arrays.SparseArray はまさに疎行列。一次元だが。
      • このオブジェクトを np.asarray() で通常の NumPy 配列に変換することができる。
    • SparseDtype
      • .dtype にある情報は二つ。疎とされない値の型、そして fill 操作のためのスカラー値だ。
      • pd.SparseDtype オブジェクトの直接的な生成法はコンストラクターによる。
      • dtype='Sparse[int]' などで配列を生成してもよい。
    • Sparse accessor
      • .sparse
    • Sparse calculation
      • SparseArray に対して NumPy の universal functions 各種を適用することができる。
    • Migrating
      • 私はここを読む必要はない。
    • Interaction with scipy.sparse
      • 疎な値がある DataFrame オブジェクトを疎行列から生成するには DataFrame.sparse.from_spmatrix() を呼び出す。
      • デモコードでは疎行列を用意するのに scipy.sparse.csr_matrix() を利用している。
      • 便利メソッド Series.sparse.from_coo() があるのは、疎な値がある Series オブジェクトを scipy.sparse.coo_matrix から生成するため。