Vaexで移動平均を計算

どりらんです。この記事はfintalk Advent Calendar 2019の11日目です。
ここのボスになんか書けと言われたので書きました。

Vaexとは

pandasのようなテーブルデータ(DataFrame)を扱うライブラリです。Out-of-Core(メモリにのらない大きなデータ)を遅延処理で計算できるのが特徴です。

pandasの1000倍速いと言われており、シャア少佐もびっくりです。気になったのでちょろっと試してみました。金融ネタということで、今回は移動平均を算出してみます。

インストールなど

公式ドキュ

pandasクックブック ―Pythonによるデータ処理のレシピ―

本書をマスターすればpandas中級者!

朝倉書店様 より 「pandasクックブック ―Pythonによるデータ処理のレシピ―」 をご恵贈いただきました。朝倉書店様、ご紹介いただいた Hayao(-ε-δ)さん ありがとうございます。

http://www.asakura.co.jp/goods_img/115751.jpg

以降は「本書」と表記させていただきます。

pandasに関しては共著: PythonユーザのためのJupyter[実践]入門 (以降はJupyter本とします)の第3章でもいつくか解説されていますが、pandasがメインの書籍ではありません。 本書はその名のとおり、pandasに焦点を当てて詳しく

ポートフォリオのリスクを分析する

「FinTech Advent Calendar 2018」の記事です。
Pythonのライブラリを使ってポートフォリオのリスクを分析してみます。

データの準備

手っ取り早くデータを取りたいので、今回はQuandlを使います。
株価のデータは有料なものがほとんどで世知辛いので、先物のデータを使います。

  • 天然ガス(1限月)
    なんとなく選んだ、特に意味はない
  • E-Mini S&P 500(1限月)
    ベンチマークとして使用
In [1]:
!pip install quandl
Requirement already satisfied: quandl i
BokehのRangeToolをつかってみる

どうも、Bokeh芸人のどりらんです。

Bokeh 0.13からRangeToolが使えるようになりました。
直近の時系列データみたいが、過去を遡ってみたい場合などに便利です。
グラフの範囲選択ツールで、
Highstock などでは時系列データを可視化する際にデフォルトでついている機能だったりします。

おおまかな手順は下記のとおりです。

  1. RangeToolを描画するfigureインスタンス(図)を作成する
  2. RangeToolインスタンスを作成する
  3. 1.add_tools メソッドの引数に 2. を渡す

RangeTool クラスにキ

これからはじめる SQL 入門

Jupyter本 の共著者である 池内さん よりご恵贈いただきました。池内さんありがとうございます。

http://image.gihyo.co.jp/assets/images/cover/2018/9784774196879.jpg

誰に向けての本か

タイトルのとおり、これからSQLを学びたいかたにとってはぴったりな内容です。
本書のはじめににも書かれておりますが、SQLは営業やマーケティング部門も扱うようになってきました。
SQLを学ぶ上で専門用語がハードルとなりそうですが、本書では平易な表現で解説されており、ITになじみがないかたでも理解しやすい内容になっているのではないでしょうか。

すでにある程度SQLに通じているかたでも、基礎から復習したい場合
Jupyter本没原稿集#2.2 ipywidgets#2
ボツネタ供養の第三弾です。前回から大分間が空いてしまいました。申し訳ありません...
今回は残りすべてのウィジェットを紹介します。

ToggleButton

トグルボタンです。ボタンをクリックすると真偽値が切り替わり、状態が保持されます。以下のコードでは2つの値の論理積を出力しています。

from ipywidgets import ToggleButton


def x_and_y(change):
    clear_output()
    print(toggle_button_x.value & toggle_button_y.value)
あまり紹介されていない可視化ツールを試す

「Jupyter Advent Calendar 2017 10日目」 の記事です。

今回はJupyter上から可視化できるツールのなかで、あまり日の当たってないものにスポットライトを当ててみたいと思います。
これはと思うものがあれば試してみていただけると幸甚です。

Lightning

http://lightning-viz.org

APIベースの可視化ツールです、herokuやdockerからなどから環境を構築できます。
今回はJupyter上からの事例を紹介しますが、サーバを建てたほうが威力をはっきするかもしれません。

J

Optimized Pythonを試す

「python Advent Calendar 2017 10日目」 の記事です。

TwitterのTLをぼーっと眺めていたら気になるサイトを見つけました。

Check This Out – Optimized Python

なんと、このdockerイメージを使うと、公式のPythonのイメージと比較して、19%の高速化と75%の軽量化がされているようです。 これは試さずにはいられません。

ビルドされたイメージは Docker Hub に上がっており、イメージをpullするだけで最適化されたPythonが使えます。

Pythonのバージョンは3

累積リターンをfor文を使わずに算出する冴えたやり方

fin-pyもくもく会 #8 で for文を使って累積リターンを算出して遅いという話をしていたら、2casa さんより、対数収益率を計算した後に合計したらよいのではないかとアドバイスいただきました。

確かに「Pythonでfor文を使ったら負け」という格言があることですし、色々試してみました。

前提条件

下記のように最初の株価を100円とし、1000日分の騰落率をランダムに与えてみます。

In [1]:
import numpy as np


n = 1000  # データ数
s0 = 100  # 最初の株価
np.random.seed(10)
pct_c
Jupyter本の没原稿集 #1 Bokehで凝った円グラフを描画する

ボツネタとは

Jupyter本 にはページ数の都合で入り切らなかった内容を紹介する企画第一弾です。
涙をのみながらボツにした原稿を少しカジュアルにして本ブログで復活させます。

Bokeh で凝った円グラフを描画する

今回は Bokeh を使用して、下記の要件を満たす円グラフを描画してみます。

  • 要素数が多いため、上位のみを表示する
  • 上位以外はテキストを表示せず、目立たない表示にする(徐々にグレイアウト)
  • テキストの書式を設定する

テンプレどおりのグラフなんてつまらない、プレゼンで差をつけたい、なんて場合にはカスタマイズしたグラフ

著者が語るJupyter本の読みどころ

ご縁があって、 PythonユーザのためのJupyter[実践]入門 という書籍を共著で執筆させていただきました。

本記事では本書の読みどころなどについて、勢いに任せた乱筆ですがつらつらと語っていきたいと思います。

本書の目的

本書の3ページ「はじめに」を全文掲載します。まさにここに書かれていることが本書を読む動機となると思います。書店などで本書を手にとってパラパラ見ていだければ雰囲気はつかめると思います。

本書は、「Jupyter Notebook」の使い方と「データの可視化」にフォーカスを当てた書籍です。 Jupyt

ブログをリニューアルしました

Miyadaiku に乗り換えた理由

これまでは静的サイトジェネレータとして Pelican を使用していましたが Miyadaiku に乗り換えました。

Miyadaiku は Python 製の静的サイトジェネレータです。当初は ipynb ファイルが最初から扱える Nikola に乗り換える予定でしたが、下記のような理由で Miyadaiku を採用しました。

Jinja2 が使える

Jinja2 は Python 製のテンプレートエンジンです。 従来の静的サイトやブログでは記事の内容やテンプレートをベタ書きする必要がありました。 共通部分をテンプ

Jupyter Notebookサンプル

Miyadaiku では Jupyter Notebook の ipynb ファイルをそのままサイトまたはブログの記事として投稿できます。

In [1]:
from bokeh.plotting import figure, output_notebook, show

output_notebook()
p = figure(plot_width=200, plot_height=200)
p.line([1, 2, 3], [3, 2, 1])
show(p)
Loading BokehJS ...

このようにJSが必要なnotebookもレンダリングされています

1