ジュリア
Juliaは、Fortran、Matlab、Python、Rなどの言語を置き換えるという野心的な目標を持ちながら、高速でありながらも簡単なコーディングを目指すプログラミング言語として開発されています。言及された言語の共通点から分かるように、科学計算分野でのシェアを拡大しており、同じフィールドにある生エビ寿司店も、国内でJuliaの普及を目指しています。
マーク | 詳細分類 |
---|---|
Python由来の特徴 | |
Matlab由来の特徴 | |
R由来の特徴 | |
Julia固有の特徴 |
ここでJulia固有の特徴とは、Matlab、Python、Rとは差別化されるという意味です。他のプログラミング言語ではよく見られる特徴かもしれません。これらの言語をすでに知っている場合、「Juliaを学ぶ」という表現自体が奇妙です。多くの関数や表現が似ているため、これらの言語を知っていれば、Juliaも知っていると言えます。Julia、Matlab、Python、Rで同等のコードポストを参照してください。
Juliaでの機械学習に関する情報は、機械学習カテゴリーを参照してください。
チュートリアル
インストールとパッケージ
- Juliaプログラミング言語
- WindowsでJuliaの最新バージョンをインストールする方法
- LinuxでJuliaの最新バージョンをインストールする方法
- パッケージをインストールして使用する方法
Pkg.jl
- 別のファイルで定義された関数を使用する方法
include("file.jl")
- コンソールを初期化する方法 Ctrl + L,
print("\033c")
I/O
- *.matファイルを読み書きする方法
MAT.jl
- *.npyファイルを読み込む方法
PyCall.jl
- *.csvファイルを読み込む方法
CSV.read()
- 2次元配列を*.csvファイルに出力する方法
CSV.write()
- *.shpファイルを読む方法
Shapefile.Table()
file.choose()
のようにダイアログを開いてファイルを選択する方法open_dialog()
- Rで使っていた組み込みデータセットを読み込む方法
RDatasets.jl
基本文法
- ランダム抽出する方法
rand()
- Juliaで絶対に知っておくべき文法:ブロードキャスティング
f.(x)
- Juliaの強力な便利機能、マクロ
@
- 変数名にギリシャ文字、添字を使う方法
\alpha
→α
- エレガントなループを使用する方法
while
,for
,zip()
- シンボル
:foo
- エクスクラメーションマークの慣習
foo!()
- コンプリヘンション
上級文法
==
と===
の違い- ラムダ式
foo -> bar
- パイプオペレーターの使用方法
|>
- 三項演算子
? :
- データを省略せずに出力する方法
show(stdout, "text/plain", foo)
- メタプログラミング
Meta.parse()
,eval()
- 外部プログラムを実行する方法
run()
- プログレスバーを使用する方法
ProgressMeter.jl
,ProgressBars.jl
- Naverでメールを送る方法
SMTPClient.jl
スプラットオペレーター ...
- スプラットオペレーター
...
- 可変長引数関数を定義する方法
function f(x...)
- 2次元配列と行列間の変換方法
[eachrow(M)...]
,hcat(A...)
- Juliaのスプラットオペレーターを通じたオプション引数の渡し方
foo(; args...)
データ構造
- 配列のスライシングとインデックス指定
x[1:end]
,x[[1,3,4]]
- 構造体の属性を確認する方法
propertynames()
- 辞書とペア
Dict()
,x => y
- 集合型と演算子
Set
- ベクトルとタプルの違い
- 名前付きタプル
(; x, y)
- 基本データ型を変更する方法
@changeprecision
- 文字列を数値に変換する方法
parse(type, str)
- コレクションの重複をなくす方法
unique()
,allunique()
配列
- 空の配列を作る方法
- 配列の型を指定して定義する方法
- ベクトルを生成するさまざまな方法
- 高次元ベクトルを直接定義する方法
- 配列を列ごとに計算する方法
- 配列を平行移動する方法
circshift()
- 多次元インデックス
CatesianIndex
- 単一要素集合にアクセスする関数
only
- ソート順序関数とその応用
sortperm
- カテゴリカル配列
CategoricalArrays.jl
- 名前付き配列
NamedArrays.jl
文字列
- 文字列を結合する方法
*
,string()
,join()
,^
- 変数の値を便利に出力する方法、補間法
$string
- Pythonのように文字列を扱う方法
replace(, "a" => "A"), join(), split()
- 文字列で特定のパターンの位置を見つける方法
findfirst(), findnext(), findlast()
- テキスト出力を飾る組み込み関数
printstyled()
データフレーム DataFrames.jl
- 空のデータフレームを作る方法
- データフレームと2次元配列間の変換方法
Array(df)
,DataFrame(array, :auto)
- 変数名を列名として持つデータフレームを作る方法
DataFrame(; x, y)
- データフレームの要約を見る方法
describe()
- データフレームの特定の値を変更する方法
replace!(df, A=>B)
- データフレームをグループ別に分けて計算する方法
groupby()
,combine()
- vscodeでデータフレームをきれいに見る方法
Main.VSCodeServer.vscodedisplay(df)
画像 Images.jl
- 画像配列を回転する方法
imrotate()
- 画像のサイズを変更する方法
imresize()
- 画像を読み込んで行列に変換して保存する方法
convert(Array{Float64},)
- 画像の上下反転、左右反転の方法
rotr90(img')
可視化
- プロットのプロパティリスト
- 図のサイズと解像度を設定する方法
size=(w,h)
,dpi=
- アニメーションを作成する方法
@animate
- 図のスタイルを作成する方法
RecipesBase.jl
- 図のデフォルト設定を変更する方法
default()
- コンソールで簡単な図を出力する方法
UnicodePlots.jl
レンダリング
- 図に線分を追加する方法
plot!(xs, ys)
- 図の背景を透明に出力する方法
background_color = :transparent
- 図のアスペクト比を調整する方法
ratio = :equal
- 曲線から特定の値まで/二つの曲線の間/閉曲線内部を塗りつぶす方法
fill=()
- ベクトルフィールドを描く方法
quiver(, quiver=)
テキスト
- 図にテキストを追加する方法
annotate!()
- 図に$\TeX$を使用する方法
LaTexStrings.jl
,L"$f(x)$"
- 図に韓国語を追加する方法
default(fontfamily = "")
,Plots.plotly()
- 図の凡例の位置を調整する方法
legend = :topbottom
スタイル
- 異なるスケールの二つのデータを共有軸で描画する方法
twinx()
,twiny()
- 図の背景のグリッドを装飾する方法
- 図の軸スタイルを変更する方法
framestyle
- マーカーとラインスタイルのリスト
plot(shape=, linesytle=)
- 散布図で回帰直線を描く方法
scatter(smooth = true)
色
レイアウト
ヒートマップ
StatsPlots.jl
数学
グラフ(ネットワーク)に関連するパッケージであるGraphs.jl
は、グラフ理論カテゴリーで見つけることができます。
計算
- 重みをつけてランダムサンプリングする方法
sample(, Weights())
- 小数点以下の特定の桁で丸める方法
round(digits=)
- ビット配列を反転させる方法
.!(foo)
- 頻度を計算する方法
freqtable()
- 日付および時刻関連の関数の使用方法
Dates
- 合成関数の使用方法
∘
- 無限大の使用方法
∞
- 近似値をチェックする方法
≈
- 複素数の使用方法
im
- 0または欠損値を除いた平均を求める方法
mean(!iszero,)
- 0で割ったときの
Inf
とNaN
の違い - ジュリアでの
NaN
の比較 - 🔒 分散コンピューティングする方法
@distributed
ライブラリ
- 線形代数モジュール
LinearAlgebra
- 多項式パッケージ
Polynomial.jl
- 整数論パッケージ
Primes.jl
- 導関数パッケージ
Calculus.jl
- 距離行列を計算する方法
Distances.jl
- 記号演算を使用する方法
SymEngine.jl
- 回帰分析する方法
GLM.jl
- フーリエ変換パッケージ
FFTW.jl
- 無限配列を使用する方法
InfiniteArrays.jl
- 数値的に補間する方法
Interpolations.jl
- 有限差分を使用する方法
FiniteDifferences.jl
- クラスタリングパッケージ
Clustering.jl
- 決定木を使用する方法
DecisionTree.jl
コード最適化技術
- 文字と整数のイコールオペレーター
==
の速度比較 - 距離行列の計算を最適化する方法
pairwise()
- 小数点以下を切り捨てて整数型に変換する方法
trunc()
- 部分配列を迅速に参照する方法
@views
- ショートサーキット
&&
,||
欲しい機能が見つからない場合は?
ポストとしてまとめるには十分ではないが、以下のリストから欲しいものを見つけることができるかもしれません。
- 教材
- First Semester in Numerical Analysis with Julia:数値解析の基本的な内容とそれをJuliaで実装する内容が含まれています。リンクからPDFファイルをダウンロードできます。
- Julia Data Science:2021年11月に公開されたオンラインブックです。英語、ポルトガル語、中国語に対応しています。
DataFrames.jl
と可視化パッケージMakie.jl
を主に扱っています。リンクからPDFファイルをダウンロードできます。 - Algorithm for Optimization:最適化問題を解く様々な方法とそれをJuliaで実装する内容が含まれています。リンクから原著またはチャプター別のPDFファイルをダウンロードできます。韓国では実用最適化アルゴリズム(ジュリアで理解する最適化アルゴリズムソリューション)というタイトルで翻訳本が出版されています。
- パッケージ
- JuliaDB.jl:データ処理ライブラリで、高速な速度とメモリ管理を強みとしています。
- Metatheory.jl:メタプログラミングと記号演算のためのライブラリです。
- Cairo.jl:強力な画像作成機能を提供するパッケージです。一般的な可視化とは異なるアプローチを取ります。
- その他
- プロファイラ:Matlabと同様に、プロファイリングを通じてパフォーマンスを表示します。
- The Fast Track to Julia:Juliaで使用される文法を簡単にまとめたチャートです。
- Julia?:個人が運営するブログのようですが、Juliaを使用する高度なヒントを多く共有している方です。
全體ポスト
- ジュリアで列ごとに行列を正規化する方法
- ジュリアからRへのパッケージのインポート方法
- ジュリアで配列の特定の位置を関数で参照する方法
- ジュリアでベクトル場を描く方法
- ジュリアで関数として構造体のプロパティを参照する方法
- ジュリアの自動微分パッケージZygote.jl
- ジュリアでクラスタリングパッケージを使用する方法
- ジュリアでコレクションの重複を削除する方法
- ジュリアで決定木を使う方法
- Juliaで単一要素セットの唯一の要素にアクセスする関数 only
- ジュリアの整列順列関数とその応用 sortperm
- Juliaでコードの性能を評価、ベンチマークする方法
- ジュリアでクリップボードを使用する方法
- ジュリアで画像を垂直および水平に反転させる方法
- ジュリアのシンボリック演算パッケージSymbolics.jlの紹介
- ジュリア自然言語処理パッケージTextAnalysis.jlの紹介
- ジュリアカラースキームで0から1の間の値で色を得る方法
- ジュリアでテキスト出力を装飾する組み込み関数
- ジュリアプロットでの色の使用方法
- ジュリアのカラー処理のためのパッケージ
- ジュリアでRGBカラーコードを使用する方法
- ジュリアプロットでグラフ要素の色を指定する方法
- Julia Plotsで各サブプロットごとにグラフの色を指定する方法
- ジュリア・プロットで背景色を指定する方法
- ジュリアプロットで背景のグリッドを飾る方法
- ジュリアプロッツでのプロットのプロパティリスト
- ジュリアプロットで異なるスケールの2つのデータ軸を共有して描く方法
- ジュリアプロットでパレットを使用する方法
- ジュリアプロットでカラーグラデーションを使用する方法
- ジュリアでのNaNの比較
- ジュリアにおけるベクトルとタプルの違い
- Juliaで配列を列ごとに計算する方法
- ジュリアでコンプリヘンションを理解する方法
- ジュリアで配列の型を指定して定義する方法
- ジュリアのNamedArrays.jlパッケージ
- ジュリアでディクショナリを使って複数のキーワード引数を一度に渡す方法
- ジュリアプログラミング言語
- 줄리아의 타입과 애노테이션
- Juliaでパッケージをインストールして使用する方法
- ジュリアで配列を平行移動する方法
- ジュリアでベクターを生成する様々な方法
- ジュリアにおける配列のスライシングとインデックス化
- ジュリアでの集合データ型と演算子
- ジュリアで配列をヒートマップ画像として出力保存する方法
- ジュリアでの2次元配列操作の関数들
- ジュリアで画像配列を回転する方法
- ジュリアで画像サイズを変更する方法
- ジュリアで画像を読み込み、行列として保存する方法
- ジュリアでのラムダ式
- ジュリアでパイプオペレータを使用する方法
- ジュリアの強力な便利機能、マクロ
- ジュリアでの並列処理の方法
- LinuxでJuliaの最新バージョンをインストールする方法
- ジュリアで空の配列を作成する方法
- ジュリアで距離行列を計算する方法
- ジュリアでGIFを作る方法
- ジュリアで合成関数を使用する方法
- Linux上のJuliaでの並列計算に使用するスレッド数の変更方法
- ジュリアで実行されるコードファイルの位置を確認する方法
- WindowsでJuliaの並列計算に使用するスレッド数を変更する方法
- ジュリアで *.csvファイルを読み込む方法
- ジュリアでのデータフレームと2次元配列間の変換方法
- ジュリアで16進数RGBコード(HEX)を使用する方法
- WindowsでJuliaの最新バージョンをインストールする方法
- Juliaパッケージのインストール時に\General\Registry.toml: No such file or directoryというエラーを解決
- ジュリアでの文字と整数の等価オペレータ==の速度比較
- ジュリアで重み付けとランダムサンプリングをする方法
- ジュリアで距離行列計算を最適化する方法
- ジュリアで配列をフラット化する方法
- ジュリアのメタプログラミング
- WindowsのCMDとPowerShellでJuliaを使用する方法
- ジュリアで変数の値を便利に出力する方法、補間
- ジュリア変数名にグリーク文字と添え字を書く方法
- ジュリアで2次元配列をCSVファイルに出力する方法
- JuliaでNearstNeighbors.jlを使用して距離を素早く計算する方法
- ジュリアでデータフレームの列名を変更する方法
- ジュリアで小数点以下を切り捨てて整数に変換する方法
- ジュリアでSHPファイルを読む方法
- ジュリアで特定の値で埋めた配列を作る方法
- ジュリアでの微分の求め方
- ジュリアで構造体の属性を確認する方法
- ジュリアでzfill()を使う方法
- ジュリアでヒートマップの色範囲を指定する方法
- ジュリアで小数点以下特定の桁で丸める方法
- ジュリアでfile.choose()のようにダイアログボックスを開いてファイルを選択する方法
- ジュリアでビット配列を反転させる方法
- ジュリアにおける==と===の違い
- ジュリアでの曲線から特定の値まで/二つの曲線の間/閉曲線の内部の塗り方
- ジュリアでグラフィックスの背景を透明にする方法
- ジュリアで異なるサイズのベクトル成分ごとに操作する方法
- ジュリアでプロットにTeXを使用する方法
- ジュリアでヒートマップにプロットを重ねて描く方法
- ジュリアでnpyファイルを読み込む方法
- ジュリアパッケージ管理モードで使用可能なコマンドのリスト
- ジュリアでエレガントなループを使用する方法
- ジュリアにおいて多次元配列を直接定義する方法
- ジュリアで配列の要素がリストに属しているかを確認する方法
- ジュリアでのシンボル
- ジュリアのループでインデックスと値の両方を参照する方法
- ジュリアで.matのようにデータを保存する方法
- ジュリアから:辞書とペア
- ジュリアで近似値をチェックする方法
- PythonのようにJuliaで文字列を扱う方法
- ジュリアプロットに韓国語テキストを挿入する方法
- ジュリアプロットにテキストを挿入する方法
- ジュリアプロットで特定のデータラベルを隠す方法
- ジュリアで文字列を結合する方法
- ジュリアで多項式を使用する方法
- ジュリアでの因数分解および素数関数の使用方法
- Juliaで特定の文字列を含むかどうかを確認する方法
- ジュリアでデンドログラムを描く方法
- ジュリア文字列で特定のパターン位置を見つける方法
- ジュリアで階層的クラスタリングを行う方法
- Juliaで空のデータフレームを作成する方法
- ジュリアで特定バージョンのパッケージをインストールする方法
- ジュリアで無限大を使う方法
- ジュリアでデータフレームに新しい行を挿入する方法
- Juliaでデータフレームを並べ替える方法
- ジュリア集合の画像に線を挿入する方法
- ジュリアでデータフレームに新しい列を追加する方法
- - ジュリアでのテキスト出力装飾パッケージ
- ジュリアでCSV出力時の文字化け解決方法
- ジュリア集合の絵のアスペクト比を調整する方法
- ジュリアで図の凡例の位置を調整する方法
- ジュリアでレイアウトを使ってサブプロットを描く方法
- JuliaでDataFrameの重複した行を削除する方法
- ジュリアでデータフレームをグループ分けして計算する方法
- ジュリアでアートスタイルを作る方法
- ジュリアで図に垂直線と水平線を挿入する方法
- ジュリアでデータフレームの特定の行を削除する方法
- ジュリアプロットの基本設定を変更する方法
- ジュリアのコンテナ内部の要素タイプをチェックする方法
- ジュリアで可変引数関数を定義する方法
- ジュリアで文字列を数値に変換する方法
- Juliaで外部プログラムを実行する方法
- ジュリアでのシンボリック演算の方法
- ジュリアでコマンドライン引数を挿入する方法
- ジュリア、Python(NumPy、PyTorch)の配列の次元の違い
- ジュリアのネームドタプル
- ジュリアで変数名をカラム名として持つデータフレームを作成する方法
- ジュリアでデータフレームのサイズを確認する方法
- ジュリアで例外処理する方法
- ジュリアで配列が空かどうかを確認する方法
- ジュリアでパッケージバージョンを確認する方法
- ジュリアでRで使用されていた組み込みデータセットを読み込む方法
- ジュリアのカテゴリカル配列
- ジュリアでデータフレームの要約を見る方法
- JuliaでCSVファイルから列だけを読み込む方法
- ジュリアで周波数を計算する方法
- ジュリアでのデータフレーム特定値の変更方法
- ジュリアの三項演算子 ? :
- JuliaのデータフレームでNaNを0に置き換える方法
- ジュリアで条件文を簡潔に書く方法
- ジュリアプロットにおける軸のスタイルの変更方法 `framestyle`e`
- ジュリアで複素数を使用する方法
- ジュリアで配列から辞書を作成する方法
- ジュリアのブロードキャスティング文法
- ジュリアで部分配列を迅速に参照する方法
- ジュリアの感嘆符の規約
- ジュリアのfind関数들
- ジュリアのショートサーキット
- ジュリアの多次元インデックス
- ジュリアでの分散コンピューティングの方法
- ジュリアで基本データ型を変更する方法
- ジュリアで高速フーリエ変換(FFT)を使用する方法
- ジュリアでの日付と時刻関連関数の使用方法
- ジュリアで線形代数パッケージを使用する方法
- ジュリアでデータを省略せずに出力する方法
- ジュリアでランダムに抽出する方法
- ジュリアで与えられた分布からランダムにサンプリングする方法
- ジュリアでネイバーからメールを送る方法
- ジュリアで2次元配列と行列の間の変換方法
- Julia Plotsで軸、軸名、目盛り、目盛り値の色を指定する方法
- ジュリアで2つの時刻の差を秒単位で計算する方法
- ジュリアにおける多変数関数のブロードキャス팅
- ジュリアでメッシュグリッドを作成する方法
- ジュリアで軸、目盛りなどをすべて無くしてきれいに出力する方法
- ジュリアで回帰分析を行う方法
- ジュリアで0または欠損値を除外した平均値の計算方法
- ジュリアでプログレスバーの使い方
- ジュリアで環境変数を参照する方法
- ジュリアでデータフレームの欠損値を削除する方法
- ジュリアでコンソールを初期化する方法
- ジュリアコンソールでシンプルなグラフィックを出力する方法
- ジュリアでmatファイルを読み書きする方法
- ジュリアで無限配列を使用する方法
- ジュリアでボックスプロットを描く方法
- ジュリアでランダムシードを固定する方法
- ジュリアで3Dプロットのカメラ位置を調整する方法
- ジュリアでグラフィックスに矢印を描く方法
- ジュリアで画像のサイズと解像度を調整する方法
- ジュリア集合でマーカーに色をつける方法
- ジュリアでk-平均群集化する方法
- ジュリアで他のファイルに定義された関数の使用方法
- Julia StatsPlotsでデータフレーム名を省略するマクロ@df
- ジュリアでユニコード文字列の一部だけをスライスする方法
- ジュリアのスプラットオペレータ
- Juliaスプラットオペレーターを通じたオプション引数の渡し方のヒント
- ジュリアでゼロ除算したときのInfとNaNの違い
- ジュリアプロットで回帰直線を描く方法
- ジュリアでのマーカーとラインスタイルのリスト
- ジュリアで円形配列を使う方法
- ジュリアで配列の差分を計算する方法
- ジュリアでの数値解析的補間
- ジュリアで有限差分を使用する方法
- ジュリアプロットで軸の値を削除する方法
- Juliaのサブプロットにメインタイトルを追加する方法
- ジュリアでString7, String15なしでデータフレームを呼び出す方法