Shallow Learning

勉強の備忘録メイン

ヤシャスィーン

【Python.math】剰余計算,指数表示の仕様

剰余計算の戻り値の型は入力の型に依存する

Y X return
Y % X int int int
int int int
int float float
float float float

指数表示はfloat

# 指数表示はfloat
1000 == int(1e3)
0.001 == 1e-3

階乗の計算(再帰定義関数,math)

# 再帰定義関数
def fact(n):
    if n == 0: return 1
    else n * fact(n-1)
'''
RuntimeError: maximum recursion depth exceeded
が出てくることがある.
再帰回数は上限値があるので,以下の方法で確認,設定する.
'''
import sys
sys.getrecursionlimit()
sys.setrecursionlimit(10000000)

# math package
import math
n_fact = math.factorial(n)

【Numpy】乱数生成 2017.06.11

正規乱数の生成

randnで生成できるのはN(0,1)なので,N(\mu, \sigma^{2})に対しては数式操作が必要
numpy.random.randn — NumPy v1.12 Manual

np.random.randn(d0,d1, ..., dn) #標準正規乱数の生成.
                                #  次元を増やすことでTensorにも対応.
                                #  dxに生成する乱数の個数を入力
sigma * np.random.randn(1) + mu #N(mu, sigma)に従う正規乱数(スカラー)

【Numpy】iterator: nditer

nditerの使い方

多次元配列でのIteration
numpy.nditer — NumPy v1.12 Manual

it = np.nditer(x, #走査対象の配列
               flags=['multi_index'], #走査方法
                                      #  multi_index: 多次元indexの生成
               op_flags=['readwrite'])#オペランドに対して許可する操作の種類
                                      #  readwrite: 読み込み,書き込みともに許可
                                      #  readonly: 読み込みのみ許可
while not it.finished:
   i = it.multi_index
   print(i)
   it.iternext()
        
#Result
(0, 0)
(0, 1)
(0, 2)
(1, 0)
(1, 1)
(1, 2)

【matplotlib】ベクトルの描画

ベクトルの描画

quiverを使う.gradientの描画などに.
matplotlib.axes.Axes.quiver — Matplotlib 2.0.2.post3141+gb6eb043 documentation

import matplotlib.pylab as plt
plt.quiver(X, #ベクトルの始点 X座標
           Y, #ベクトルの始点 Y座標
           U, #X方向の成分
           V, #Y方向の成分
           angles="xy", #角度の決定方法 
                        #"uv": if U==V then π/4, "xy":from (x,y) to (x+u, y+v)
           color="#666666")
plt.show()

論文[薬剤疫学] Nonsteroidal anti-inflammatory drugs and risk of heart failure in four European countries: nested case-control study (Arfè A et al., BMJ, 2016 Sep)

www.ncbi.nlm.nih.gov

なぜこの論文か

エビデンス創出における観察研究の可能性,運用方法,具体的な分析手法について理解が個人として不十分と感じるため,このあたりの能力開発の一環として.

続きを読む

RStan学習録

(2017-02-02作成)

R tips

t(): 転置行列を返す関数

apply(X, MARGIN, FUN, …): リスト、タプル、ベクトルに共通のFUNCTIONを適用。MARGINは関数を適用する方向を意味し、例えば次のように計算できる。

#MARGIN == 1
> D <- data.frame(c(1,3,4,3,8), c(2,5,6,6,8), c(7,3,9,2,0))
> colnames(D) <- c("A", "B", "C")
> apply(D, 1, mean)
[1] 3.333333 3.666667 6.333333 3.666667 5.333333
> apply(D, 1, max)
[1] 7 5 9 6 8
> apply(D, 1, min)
[1] 1 3 4 2 0

#MARGIN == 2
> apply(D, 2, mean)
  A   B   C 
3.8 5.4 4.2 
> apply(D, 2, max)
A B C 
8 8 9 
> apply(D, 2, min)
A B C 
1 2 0 

靴を磨くとマジで光る

大学の入学式(6年前?)でスーツについてきた適当な革靴と、ABCマートで適当に買った防水革靴しか持っていなかったこともあり、大変恥ずかしながら、これまでまともに靴磨きをしたことがなかった。

しかし最近、冠婚葬祭の機会が増えてきたのと、それなりの場にはそれなりの服装で、という意識がようやっと芽生えてきたこともあり、ちょっといい目の靴(スーツ屋で適当にくっついてくるやつではない、という意味で)を購入したので、靴磨きの仕方というのを学んでみた。

www.columbus.co.jp

このプロトコルをある程度守って、6年ものの適当革靴を磨いてみたところ、これがびっくり。
刻み込まれたシワこそ消えないものの、立派に黒く光っているじゃないですか。

革靴が光るのって新品の時ぐらいなのかと思ってました……。
(大して期待してなかったので画像すらないという)