Juliaで行こう! 〜探して!編〜

仕込み期間

どうしても、仕込み期間というか仕込み時間というのが必要で、ナカナカ毎日とはいかないものです。
今回は関数一つだけ。仕込み途中で、へぇー、と感心したので、それを書こうかと。多分、Pythonでも同様のことはできるのだろうえけど、HotなPandas使って、ゴリゴリっていうので、やってないので。逆に、Juliaで初っていうことになってるのですね。

Julia 1.0.1

Conflict問題はそのままで、実作業的には、1.0.1ではなく、1.1.0-DEVを使用しています。Versionを記載したのは、0.7を含む1.x系で、BaseのModuleの関数が、いろいろと変わってまして、xxfirstというものに、頻繁に使用しそうなものが変わっています。今回紹介する関数もその流れにあるものだったします。

探せ!

いきなり、参考Codeを以下に記述します。

julia> x = [ 1, 2, 3, 4, 5, 6]
6-element Array{Int64,1}:
...

julia> y = [ 1 2; 3 4; 5 6;]
3×2 Array{Int64,2}:
...

julia> z = ["A" "B"; "B" "C"; "C" "A";]
3×2 Array{String,2}:
 "A"  "B"
 "B"  "C"
 "C"  "A"

3つ程、Arrayを用意しました。2つ目と3つ目はMatrixになってるものです。

julia> findall(u->u==2, x)
1-element Array{Int64,1}:
 2

julia> findall(u->u==2, y)
1-element Array{CartesianIndex{2},1}:
 CartesianIndex(1, 2)

julia> findall(u->u=="A", z)
2-element Array{CartesianIndex{2},1}:
 CartesianIndex(1, 1)
 CartesianIndex(3, 2)

julia> findall(u->u>=2, y)
5-element Array{CartesianIndex{2},1}:
 CartesianIndex(2, 1)
 CartesianIndex(3, 1)
 CartesianIndex(1, 2)
 CartesianIndex(2, 2)
 CartesianIndex(3, 2)

第一引数は関数、第二引数は検索対象となる配列、ということなります。
個人的には、便利だな、と思っています。

コメント

このブログの人気の投稿

Tabulatorで行こう! 〜ダイバー編〜

Tabulatorで行こう! 〜違うじゃん編〜

Fedoraで行こう! 〜音声合成pyttsx3編〜