裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

はっきり言って,

2021年12月19日 | ブログラミング

もう,Python なんて,いらね〜〜〜〜〜じゃない?

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

なんとかムーン

2021年12月19日 | 雑感

ここ数年?

満月のたびに,「今日は〇〇ムーン」とかネットで書かれてですね。

なんだそれ。

「アメリカインディアンはこの満月を〇〇と呼んでいました」

 

はあ,そうですか。私,日本人ですけど何か?

 

流星群とか,満月とか,一般人(失礼します)にアピールするのも良いのだけど。

例えば,流星群。期待するほどのものじゃないですよ。(まあ,「今まで,流れ星を見たことないんです❤」なんて人は別格なんですが。別格なら別格で,「なんだ,期待はずれじゃんプンプン」てこともあるので)

程々にしてほしいものです。

なお,夢を壊すかもしれないけど,散在流星というのもありましてですね,季節も時間も問わず,一時間に1つ流れるかどうかという流星もあるんです。これこそ,みられたら「幸せになれるかもれない」。流れ星が消えるまでに何回願い事を言えばいいのか?なんてこともない。それこそ,「まれなこと」なんだから。

夢が叶うかどうかと言うなら,流星群ではなく散在流星のほうがご利益ありそうですよね。

心を無にして,夜空を眺めましょう。

流れ星がみられなくても,あなたが見つめた煌めく星星は,あなたに流れ星以上のすばらしい何かを伝えてくれたのではないでしょうか

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

R ユーザ,歓喜の涙 -- ケンドールの順位相関係数の計算が Python の倍速!

2021年12月19日 | ブログラミング

みんな大好き,Julia の速度自慢
https://blog.goo.ne.jp/r-de-r/e/35653aa771bcd15136f14dae7969e593

では触れなかったが,

みんな大好き,R と Python の速度比較
https://blog.goo.ne.jp/r-de-r/e/9d0ef78b17007c6de642983c368aaf20

で,R でのケンドールの順位相関係数の計算が遅すぎると書いた
これを解決できるパッケージを見つけたので報告する。

実験環境

macOS Monterey バージョン 12.1
Mac mini (M1, 2020)
チップ Apple M1
メモリ 8GB

R M1 チップ対応
version        4.2.0
platform       aarch64-apple-darwin21.1.0                        
arch           aarch64                                           
os             darwin21.1.0                                      
system         aarch64, darwin21.1.0                             

Python M1 チップ対応
Python 3.10.0

Julia M1 チップ対応
Version 1.7.0 (2021-11-30)

テストに使用するデータ

R で作った,10万件1500変数のデータフレームを csv ファイルとして保存。
これを各プログラムでデータフレームとして入力して各種関数の実行速度を測定する。

n = 100000
m = 1500
x = data.frame(round(matrix(rnorm(n*m, 50, 10), n, m), 2))
write.csv(x, file="test.csv", row.names=FALSE)
df = read.csv("test.csv", colClasses="numeric")})

まずは,R

> system.time({rk = cor(df[1:5], method="kendall")})
   user  system elapsed
327.977   0.465 328.402

探索していて見つけたライブラリ
https://rdrr.io/cran/pcaPP/man/cor.fk.html

library(pcaPP)
> system.time({fk = cor.fk(df[1:5])})
   user  system elapsed
  0.106   0.002   0.109

cor() より 3000倍速い

> system.time({fk = cor.fk(df[1:50])})
   user  system elapsed
 10.330   0.262  10.560

次いで, Python

>>> start = time(); rk = df.iloc[:, 0:5].corr(method='kendall'); print(time() - start)
0.2503321170806885

cor.fk より 2 倍以上遅い

>>> start = time(); rk = df.iloc[:, 0:50].corr(method='kendall'); print(time() - start)
26.7141010761261

最後に,Julia

@time rk = corkendall(Matrix(df[:, 1:5])) # 0.134137 seconds
@time rk = corkendall(Matrix(df[:, 1:50])) # 11.786005 seconds;

cor.fk() より若干遅いが,Python に比べて 2倍以上速い

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村