算額あれこれ

算額問題をコンピュータで解きます

2021-01-01から1ヶ月間の記事一覧

Julia の IterableTables

== IterableTables.jl https://www.queryverse.org/IterableTables.jl/stable/ IterableTables.jl は,Julia のテーブル型データに包括的なインターフェースを定義する。 現在のところ,以下のデータソースをサポートしている。 DataFrames DataStreams (CSV…

Julia で k-means クラスター分析

まず,驚くところは,Julia の k-means 関数では,データを ncol x nrow であたえるところ。よく,help も読まないでやると,戸惑う所の騒ぎではない。ということで,データを transpose して与えないといけない。これくらいのこと,ユーザに強いるなよ!! …

Julia のデータフレームで Query

直にデータフレームを操作するより楽なのかな? using Query using RDatasets mtcars = dataset("datasets", "mtcars"); names(mtcars) 12-element Array{String,1}: "Model" "MPG" "Cyl" "Disp" "HP" "DRat" "WT" "QSec" "VS" "AM" "Gear" "Carb" @collect …

Julia と R のコラボレーションを jupyter notebook で記録

jupyter notebook というのは,いろいろな言語に対応している。 R の RStudio や,これまた多くの言語に対応している Atom と少し違って,スクリプトと実行結果をまとめて記録でき,成果物を LaTeX, PDF をはじめとして様々な形式で保存・閲覧できるという点…

汎用性のあるプログラム(関数)を書こうよ

毎度,おいしいテーマを提供いただき,ありがとうございます。 「全て異なる」という条件をPythonで実験する ということですが, 要素数を無制限にした,以下のような回答があるかと思いきや。 a = [1,2,3,4,5]all([a[i] != a[j] for i in range(len(a)-1) f…

Julia で R を使う(その2)

== サポートされている変換 RCall は最も基本的な Julia のデータ型や人気のある統計パッケージ例えば DataFrames, CategoricalArrays や AxisArrays との相互変換を支援する。 == Julia の基本データ型 julia> # Julia -> Rjulia> a = robject(1)RObject{In…

Julia で R を使う(その1)

== RCall.jl 参照 URL https://juliainterop.github.io/RCall.jl/stable/ RCall は,Julia から R 環境(R パッケージ)を利用したり,R 環境での作業結果を Julia へ取り込んだりすることができる。 == インストール まだ RCall をインストールしていない場…

MATLAB プログラムを Julia に書き換え

細かいところは最終的には頭を使った手作業になるが,エディタレベルでの作業についてまとめておく。 文末が ; であるが,Julia では問題ないのでそのままにしておく。 if 文,while 文 の論理式は ( ) で囲まれているが,Julia では問題ないのでそのままに…

Julia の変数スコープ

わかりにくいかもしれないので,簡単な例を挙げておこう。 test99.jl という名前のファイルに以下の内容が入っているとするfor i = 1:10 s = i == 1 s = s + iendprintln(s) コマンドラインで $ julia test99.jl とすると, ERROR: LoadError: UndefVarError…

Julia の変数スコープに注意

R の fisher.test() において,hybrid=true を選択した場合に使用される rcont2() を Julia に移植した。 Julia は,for ブロック,while ブロックが 新たな変数スコープを持つので,注意が必要な局面がある。 普通は,エラーメッセージで気づくのだが,REPL…

みんな大好き,Julia の速度自慢

つい一月半位前に「みんな大好き,R と Python の速度比較」というのを書いた。そのときには,Julia なんて眼中になかったのだ。 そこで,Julia で同じことをやるとどんだけ〜〜速いかやってみた。 結論 Julia 速い。ただし,初回は若干時間が掛かる。 Pytho…

簡単なプログラミング問題を Julia で解く

以下では Python の解答例が示されているので,Julia でやったらどうなるか書いてみた。 10 Algorithms To Solve Before your Python Coding Interview 関数として定義したが,一般的に Python よりは短く簡潔に書ける。 1. Reverse Integer Given an intege…

Julia で R の deparse() みたいなもの(その2)

やはり,前の記事のは無理があるので,すっきりさせようと。 ただ,書式を与えられるようにと。 普通にやると動かないのは @printf() がマクロとはいえ,コンパイルされる関数で,fmt の部分に文字変数を指定しても動かない。それを回避するには @eval() を…

Julia で R の deparse() みたいなもの

ちょっと探しても見つからないし,Julia 自体が,変数のタイプがなんなのかは typeof() でわかるんだけど,それに応じて別々の処理をしようとしてもできない。 if typeof(x) == String なんてのができないということ。 そこで,こねくり回して以下のような関…

Julia で順列,組み合わせなど

バイナリ・コンビネーション R の e1071::bincombinations() に相当するもの。 絶対にお勧めではないが,単純で忘れにくいもの。小さな場合に。 julia> [[x,y,z] for x=0:1 for y=0:1 for z=0:1] [0, 0, 0] [0, 0, 1] [0, 1, 0] [0, 1, 1] [1, 0, 0] [1, 0, …

Julia で微分,求解

某所で,sin(θ) + sqrt(3) * cos(θ) の最大値を求めよ。但し 0 ≦θ≦π/2。を解いていたのだが,中途半端だったので。 julia> using SymPy julia> @syms θ f(θ, f) julia> f = sin(θ) + sqrt(3) * cos(θ)sin(θ) + 1.73205080756888⋅cos(θ) julia> x = solve(dif…

Julia で微分

うう〜ん。これって,Python の sympy 使ってるだけだよな〜〜〜 θによる媒介変数表示 x = sin θy = -log tan(θ/2) - cos θ (0 < θ < π/2) θ=π/3 における d2y / dx2 の値を求めよ。log は自然対数関数。 using SymPy @syms a t u x y zx = sin(t)y = -log…

セイウチ演算子(:=)って今更...(その2)

いやあ,うっかりしてたわ。 R でセイウチ演算子での代入箇所に複文が書けるって書いていたのに,Julia のこと書かなかったわ。 Julia では,複文は begin 〜 end で囲むので次の様にして,複文を書くことができる。 どんなに複雑な式を何個書いても問題ない…

セイウチ演算子(:=)って今更...

Python 3.8 になって,使えるようになって感涙にむせんでいる人もいるようなんだけど... a = [1,2,3,4,5]if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")else: print(f"variable n is {n}")print(n) 実行結果variable n …

数学の問題を Julia で解く

某所に Python による解答例があったので,Julia でやるならどうなるか書いてみた。 Q. 1. 2018n ≡ 2 mod(1000) を満たす正の整数nの最小値を求めよ。 for n = 1:99999 if mod(2018n, 1000) == 2 println(n) # 389 break endend Q. 2. tan(2 Arctan (1/3)+Ar…

Julia で一元配置分散分析(データフレーム)

「Julia でANOVA」 という記事がある。記事の日付は2019年3月15日とわずか2年足らず前のものである。Julia v1.1.1 がリリースされたのが 2019/05/16 であるから,少なくともそれより前のバージョンということになる。 しかしその後の Julia の発展が著しく,…

指定された平均値と標準偏差を持つ正規乱数ベクトルを返す

平均値 mu,標準偏差 sigma を与え,サンプルサイズ n の 1 変数データを返す function gendat(n::Int64=1000; mu::Float64=0.0, sigma::Float64=1.0) x = randn(n) (x .- mean(x)) ./ std(x) .* sigma .+ muend x = gendat(10);using Statisticsprintln("me…

julia の関数定義

引数が違う同じ名前の関数が定義できるのは良いなあ。 function a(x::Vector{Float64}) return 1end function a(n::Int64) return 2end function a(n::Int64, r::Float64) return 3end a([1.2, 2.4]) # 1 を返すa(1) # 2 を返すa(1, 0.1) # 3 を返す

ネットニュースでも取り上げるのは控えたらよいと思うのだけど

ホリエモンとか,桝添さんとか,その他も なんかコンプライアンス的にも不適切な人じゃないの? こういうことを言ってはいけないのだろうけど,ホリエモンはいわゆる前科者でしょ(^_^;) 桝添さんも怪しいし。 その他には,コンプライアンス的には問題ない…

Julia で「ハーディ・ラマヌジャン数」を

昔の記事を自分から見に行くということはほとんどないが,ときどき誰かが読んでくれたという記録に目がとまり,一体どんなことを書いたのかなと確認することがある。 「ハーディ・ラマヌジャン数」もそのようなものだった。 それは,R で書いたプログラムで…

Julia での統計関数についてもまとめておく

cdf() に対して ccdf(),quantile() に対して cquantile() があるので,修正した。

(Windows) Julia から FORTRAN の関数を呼ぶ

「Julia から FORTRAN の関数を呼ぶ」は Mac の場合であった。これを Windows でやったらどうなるかの記事である。みんな、Windows が好きだからねえ。結論から言えば、Mac の場合と全く同じ!!という驚きの事実。前提は Julia のインストールが終わってい…

Windows PowerShell とは

PowerShellとは、Microsoftが開発したスクリプト言語およびキャラクターユーザーインターフェイス(CUI) の1つで、今までのコマンドプロンプトに置き換わるものだそうです。 PowerShell を開いて、Get-Command と打ち込むと、たくさんのコマンドが列挙され…

Windows で Julia をインストール

Windows でもJulia をやってみようと、 The Julia Programming Language https://julialang.org/ を訪れ、Download v1.5.3 ボタンをクリックして、 Current stable release: v1.5.3 (Nov 9, 2020) の下にある Windows 版の64-bit(installer) をダウンロード…

敵の敵は味方っていうじゃないですか...

まあ,はっきりいって, R の敵は Python か? じゃあ,Python の敵が Julia だったら, Julia は R の味方じゃないですか...ニッコリ Python なら できるんだけど,R には苦手,R じゃできないことって,どんなことがありますか? Julia だったらできること…