MATLAB,Python,Scilab,Julia比較 第3章 その49【インデックスサーチ⑤】

MATLAB,Python,Scilab,Julia比較 第3章 その49【インデックスサーチ⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その49【インデックスサーチ⑤】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

非極大値抑制をプログラムを作成しているときに出てきた、
線形インデックスサーチと論理インデックスサーチについて説明。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

各ツールで各インデックスサーチ

太郎くん
太郎くん

前回で、各ツール、各言語でインデックスサーチを試したけど、
なんか一覧表とかあるといいんだけどなー。

フクさん
フクさん

(それは私に一覧表をつくれってことなのか?)

太郎くん
太郎くん

(「そう思って作っておいたよ!」とか言わねぇかなぁ・・・)

フクさん
フクさん

(・・・)

太郎くん
太郎くん

(・・・)

フクさん
フクさん

(・・・)

太郎くん
太郎くん

(・・・)

太郎くん
太郎くん

そういうわけで一覧表をt

フクさん
フクさん

やだよ。

太郎くん
太郎くん

まだ最後までしゃべってないじゃん!
かぶせ気味で拒否しなくてもいいじゃん!

フクさん
フクさん

自分で作りなよ。
ちゃんとまとまってるかは見てあげるから。

太郎くん
太郎くん

むぅ。やるしかないのか・・・。

各ツールで各インデックスサーチ一覧表

太郎くん
太郎くん

というわけで作ったけど・・・。

論理index方式線形index方式備考
MATLABA(評価式ベクトル)A(find(評価式))
PythonA[評価式ベクトル]A[np.where(評価式)]NumPyの場合
ScilabA(評価式ベクトル)A(find(評価式))
JuliaA[評価式ベクトル]A[findall(評価式)]
フクさん
フクさん

うん。
いいんじゃないかな。
線形インデックスの方はもっと細かい指定方法はあるが、
findを使用したパターンを書いておけば、まぁ大丈夫だろう。

太郎くん
太郎くん

悩んだ場合は、これ見てやればOKかな。

フクさん
フクさん

そんな感じで日頃から情報を整理するようにしておくと良いね。

太郎くん
太郎くん

(上司みてぇなこと言いやがるな・・・)

余談

フクさん
フクさん

余談だが、データベース等で使用するSQLも似たような書き方はあるね。

太郎くん
太郎くん

ほう?

フクさん
フクさん

こんな書き方。

SELECT * FROM customer WHERE id_c >= 2 AND id_c <= 4;
フクさん
フクさん

WHERE句と言って、これで特定範囲のテーブルを参照可能になる。

太郎くん
太郎くん

NumPyのwhereはここから来てるのかな?

フクさん
フクさん

その可能性はあるな。
NumPy以外にもコンテナライブラリはwhereで特定要素の抜き出しをしていることは多いな。
C#のLINQなんかも一緒だろう。

太郎くん
太郎くん

そういうのを知ってると、異なる環境でも同じことができそうか確認するようになるね。

フクさん
フクさん

そうそう。
便利機能は使わないと損だからね。

まとめ

フクさん
フクさん

まとめだよ。

  • 各ツール、各言語における論理インデックスサーチと線形インデックスサートの一覧表を作成。
  • SQLやコンテナライブラリにも似たような機能が実装されていることが多いので、仕様を確認しておくと楽ができる。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました