numpy.arrayも基本シャロー・コピー

まじですぐ忘れる。 >>> import numpy as np >>> x = np.array([1,2,3]) >>> y = x >>> y[1] = 999 >>> print(x) [ 1 999 3]

numpyのrandintとrandomのrandintは違う

”端含む・含まない”問題で死亡した。Randomライブラリ(端を含む) >>> import random >>> [random.randint(0, 1) for _ in range(10)] [0, 1, 0, 1, 0, 0, 0, 1, 1, 0] Numpyライブラリ(端を含まない) >>> import numpy as np [np.random.randint(0, 1) f…

関数の中身を見る(Rで言うコンソールで関数名直打ち)

関数名を評価すると中身が飛び出してくるRに慣れすぎててPythonでどうすんのかわかんなかったのでメモ。 inspectというパッケージのgetsourceメソッドを使えばいいらしい。 >>> import inspect >>> def hoge(x): ... print("Do some awesome things.") ... r…

lubridateパッケージで月初・月末日を取る

R

こんなん。 > library(lubridate) > floor_date(as.Date("2017-03-03"), "month") [1] "2017-03-01" > ceiling_date(as.Date("2017-03-03"), "month") - 1 [1] "2017-03-31"

scikit-learnで非負値行列因子分解(NMF)

- http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.htmlを見たりググった日本語での検索結果でも何がどうなってるのかよくわからんので、ちゃんと試したメモ。非負値行列因子分解自体は要するに、ある行列MをM≒WHと近似した時…

Jupyter Notebookにloggingの結果を表示させたい

色々とStack overflow漁って調べた結果、とりあえずこれで動いた。 import sys import logging logger = logging.getLogger() handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) logger.addHandler(handler) logger.setLevel(log…

確率変数を変数変換した場合の確率分布

昔やった気もするが、すぐ忘れる&頭の体操もかねてもう一度 算数 適当な確率分布に従う確率変数x(面倒なので[0, 1]区間の一様分布想定)とそれを2乗した変数yを考える。 このときyの従う確率分布はより となる。 Rでやる 0, 1区間の一様な乱数x, 及びそれを…

Jupyterで表示されるpd.DataFrameをテーブルっぽく表示させる

Jupyterの最期の評価値(pd.DataFrame)と同じように表を出力させたい時。 適当なpd.DataFrameをdfとして from IPython.display import display, HTML display(HTML(df.to_html())) こう。(追記) ・・・と思ったら display(df) で良いみたい。

文字を整数に(string to int)

Go

ちょいとめんどいので、関数に。 package main import ( "fmt" "strconv" ) func atoi(s string) int{ val, _ := strconv.Atoi(s) return val } func main(){ x := atoi("2131") fmt.Println(x) }

標準入力からの値をとる

Go

区切りとかは必要に応じて変更 package main import ( "fmt" "strings" "bufio" "os" ) func main(){ s := bufio.NewScanner(os.Stdin) for s.Scan() { for index, element := range strings.Split(s.Text(), " ") { fmt.Println(index) fmt.Println(element…

use_testthat()でテスト用のディレクトリ・ファイルを一発で作る

R

昔devoolsにあったと思った関数が、いつの間にかusethisという新しいパッケージに移っていたので、そのメモ。 こいつに入っている use_testthat()を用いると、Rのパッケージを作る際のテストディレクトリ・ファイルを一発で作ってくれる。 > devtools::inst…

値を動的に生成して、動的に取得する

R

assignで動的に値を生成して、getをうまく活用すれば取れる、が、あまりきれいではない。 > f <- function(){ + for(i in 1:10){ + assign(paste0("variable_", i), i) + } + variable_names <- ls(pattern="^variable_.*") + sapply(variable_names, functi…

ABテストに関する某氏の助言

分野違いすぎてよくわからんが、言っていることは正しい(はず) [6:54 PM] A/B テストをやっているのですが、A/A も同時にやっていて、A1/A2/B の3つのグループのデータがあります。 サンプルサイズはアホなほどあり、A/A でもすべてのデータを使うと有意差…

captionerパッケージで図・表に対する参照(レファレンス)を取得する

R

http://datascienceplus.com/r-markdown-how-to-number-and-reference-tables/にあった話。 captionerパッケージを用いると、R Markdownの中での図表の参照を簡単に書くことができるというお話。以下、簡単な例だが、こんな様に書けば図表に対する参照もでき…

リストに名前を付けるのは最後にした方がいいっぽい(へんなのR)

R

へんなのRというハッシュタグがある。 そこに投げつけるための話。 適当な関数の用意 3の時だけNULLであとはirisデータの頭を返す関数を用意する。 これはNULLを返す場合があるってのが本質で、あとは適当でよい。 #3の時だけNULLほかは適当 f <- function(…

Rcpp内で日付(Date)を取り扱う

R C++

Rcpp内でDate型を取り扱いたいときにはDateVectorクラスを使用する。 ただ、 c++ - Subsetting Rcpp::DateVector using IntegerVector that contains indices? Operator [] overload - Stack Overflow によると、Rcpp内で日付を扱うためのDateVectorクラスは…

三連ドット(..., dot-dot-dot, ellipsis)の取り扱い

R

これもr-wakalangに投げ込んで教えてもらった話なので、まずは簡単にまとめる。 基本的な使い方 適当な...を持つ関数を定義する。 f1 <- function(x, ...) { dots <- list(...) print(dots) } これに対して以下の実行結果からわかるように、引数にマッチしな…

金融市場が混乱する間隔を日経平均ボラティリティー・インデックス(日経平均VI)から推定したい

日経平均ボラティリティー・インデックス(日経平均VI)の半減期が知りたい - My Life as a Mock Quant 日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 日経ボラティリティー・…

日経平均ボラティリティー・インデックス(日経平均VI)の半減期が知りたい

日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 引き続き日経VIネタ。 日経VIの挙動は、株価のような対数幾何分布に従うような確率過程(そうは見えないけどそうだと思っておく…

dplyrで時系列データの処理

R

dplyrを拡張してデータフレームっぽい俺俺クラスを動かす - My Life as a Mock Quant で書いた、”dplyrでの時系列処理ってどうするんじゃい”というのの簡単な例。 下で示したようなやり方で大半は片付くのではないだろうか(たぶん)。まず、ライブラリ&サ…

dplyrを拡張してデータフレームっぽい俺俺クラスを動かす

R

みんな大好きデータフレームのハンドリング用ライブラリdplyrを拡張して、時系列データのxts型も同じように操作できるtplyrパッケージを作ろうと思ったんだが、よくよく考えるとdplyrままでいいんじゃないかなって思って辞めた。 その際に試行錯誤した残骸を…

パッケージ作ってて、そのパッケージの中のある関数中で他のパッケージの関数呼ぶ場合、DESCRIPTIONのImports書いてるだけじゃだめぽなんですが、 これちゃんとNAMESPACEにImport書かないとダメなんでしたっけ…?

R

完全備忘録。 hoxo_n パッケージ作ってて、そのパッケージの中のある関数中で他のパッケージの関数呼ぶ場合、DESCRIPTIONのImports書いてるだけじゃだめぽなんですが、 これちゃんとNAMESPACEにImport書かないとダメなんでしたっけ…? 聖書にちゃんと書いて…

日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった

なんもなかった。が、なんもなかったなりの備忘録。 データの取得 Quandle経由で取得。元のソースはコメントに記載。 PLOTを見る限り、ちゃんとした元の値っぽい。 library("Quandl") # Sorce: https://www.quandl.com/data/NIKKEI/VLTL-Nikkei-Stock-Averag…

foreachでprogressbarを表示しても進行状況は正しくないケースが多い

R

foreachでprogressbarを表示する - J's blog Rでプログレスバー - 驚異のアニヲタ社会復帰への道 の辺でやられているforeach系パッケージでプログレスバーを出す方法だが、これは進捗を正しく表すものではないケースが多い*1。例えば、 library(foreach) lib…

数値の頭に0を詰めて桁を揃える

C++

数値の頭に0を詰めて桁を揃える - My Life as a Mock Quant のC++版をやりたい。 #include <iostream> #include <iomanip> #include <string> #include <sstream> int main() { // 現状保存 std::ios::fmtflags curret_flag = std::cout.flags(); //123の頭に5個0を詰めて8桁にする std::ostrings</sstream></string></iomanip></iostream>…

各グループごとにXXX(標準化など)したデータを作成する

R

今までは、例えば、下記のようなあるデータフレームのデータを、日付ごとにスケーリング(scale())し、その結果をデータフレームとして返すような処理として、以下のように書いていた。 これは「各日付ごとに全IDのデータ(r)列が存在し、それを日付ごとにスケ…

0, 1でやっときゃFactor型と同じ結果になる

R

回帰の時あえて変数をFactorにする必要あるのかな?ってのを確かめておいた。 Factorが0,1の場合だけだけど。 > set.seed(71) > x <- 1:100 > z <- rep(0:1, 50) > y <- 1.2*x + 2.3*z + 3.4 + rnorm(100) これで普通に回帰すると > glm(y ~ . , data=data.f…

MD5(Message Digest 5)のハッシュ値を計算したい時にはmd5ライブラリ

http://d.hatena.ne.jp/teramonagi/20150620/1434774864 と同じ話をPythonでやりたかった。 md5ライブラリを使えばよい&Rと答えを合わせるためには`serialize=FALSE`せんといかん点に注意。 seriarize引数の説明は A logical variable indicating whether t…

data.frame, cbindは文字列(character)ではなく因子(Factor)がデフォルトだった・・・っけ?

R

掲題の件、どうやらそうだったらしい。 なので、毎回stringsAsFactorsを設定すると(Hadleyverseはあえてつかわない) お元気で。 > df <- data.frame(x=1:3, y=letters[1:3]) > str(df) 'data.frame': 3 obs. of 2 variables: $ x: int 1 2 3 $ y: Factor w…

全体の設定は $R_HOME/etc/Rprofile.site に書く

R

~/.Rprofileでユーザ個別の設定になる一方、$R_HOME/etc/Rprofile.siteが全体の設定だったんだなぁ。 参考 http://www.agr.nagoya-u.ac.jp/~seitai/document/R2009/Rsettings.pdf http://www.cwk.zaq.ne.jp/fkhud708/files/R-intro/R-stat-intro_01.pdf http…