Hatena::ブログ(Diary)

My Life as a Mock Quant このページをアンテナに追加 RSSフィード Twitter

2017-05-17

行・列のIndexを指定した上でpandas.DataFrameを作る

| 11:06 | 行・列のIndexを指定した上でpandas.DataFrameを作るを含むブックマーク

Indexの指定がめんどくせぇわ…

In [1]: import pandas as pd
In [2]: df = pd.DataFrame([
   ...:     [0.00, 0.03, 0.000],
   ...:     [0.01, 0.04, 0.005],
   ...:     [0.02, 0.05, 0.010]
   ...: ],
   ...:     index=pd.Index([0, 1, 2], name='hoge'),
   ...:     columns=pd.Index(['0_0', '0_1', '1_0'], name='hage')
   ...: )

In [3]: df
Out[8]: 
hage     0_0   0_1    1_0
hoge                   
0     0.00  0.03  0.000
1     0.01  0.04  0.005
2     0.02  0.05  0.010

2017-04-28

関数のイコールをチェックしたいといはidentical関数

| 18:09 | 関数のイコールをチェックしたいといはidentical関数を含むブックマーク

結構長くR書いてエル気がするが、よくよく考えるとidenticalが必要になる場面に初めてぶつかった気がするのでメモ。

今までは別のやり方で回避していたのだろうか?

> #適当な関数を定義
> f <- function(){print("hoge")}
> g <- function(){print("hage")}
> #適当な変数に代入(しなくてもいいが)
> a <- f
> b <- g
> #単純に比べるのはだめ
> a == b
Error in a == b : 
  comparison (1) is possible only for atomic and list types
> #identical使えよと
> identical(a, b)
[1] FALSE

2017-04-12

numpy.arrayも基本シャロー・コピーだが、部分を取るとディープ・コピー

15:14 | numpy.arrayも基本シャロー・コピーだが、部分を取るとディープ・コピーを含むブックマーク

http://d.hatena.ne.jp/teramonagi/20170411/1491892292

の続き的な。

bの部分集合を指定した時点でコピってんだろうなぁ。。。

>>> import numpy as np
>>> a = np.array([[1, 2],[3, 4]])
>>> b = np.array([[6, 7],[8, 9]])
>>> a[[(0,0), (1,1)]] = b[[(0,0), (1,1)]]
>>> a[0][0] = 100
>>> a[1][1] = 100
>>> a
[[100   7]
 [  3 100]]
>>> b
[[6 7]
 [8 9]]

2017-04-11

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

| 15:31 | numpy.arrayも基本シャロー・コピーを含むブックマーク

まじですぐ忘れる。

>>> import numpy as np
>>> x = np.array([1,2,3])
>>> y = x
>>> y[1] = 999
>>> print(x)
[  1 999   3]

2017-04-10

numpyのrandintとrandomのrandintは違う

16:01 | 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) for _ in range(10)]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]