Juliaプログラミングクックブック

―言語仕様からデータ分析、機械学習、数値計算まで

[cover photo]
TOPICS
クックブック , Programming
発行年月日
PRINT LENGTH
392
ISBN
978-4-87311-889-5
原書
Julia 1.0 Programming Cookbook
FORMAT
Print PDF
Ebook
4,180円
Ebookを購入する
Print
4,180円

本書はJuliaの言語仕様からデータ分析、機械学習、数値計算まで広範囲のトピックをカバーする約90のレシピを収録したクックブックです。Juliaは数値計算、科学技術計算を得意とする言語で、C並みに高速で、Python並みに書きやすい、高機能かつ近代的なオープンソース言語を作成しようという目的で開発されました。数式を素直に表現できる構文を持ち、洗練されたデータ構造により計算速度が非常に速く、PythonやRといった既存のオープンソース言語の不満を解消する言語として注目を集めています。本書はJuliaが得意とする機能を多数紹介しており、Juliaの魅力と威力を存分に体感できます。原著はJulia 1.0と2018年10月時点でのライブラリを対象に書かれていますが、翻訳の際に1.2と2019年9月末時点での最新のライブラリにおいて動作チェックを行い、コード例に対して必要な修正を行ってあります。コード例はすべてGitHubからダウンロード可能。日本語版補遺として言語仕様を収録しました。

関連ファイル

目次

まえがき

0章 Julia言語入門(日本語版補遺)
    0.0 Juliaの特徴
    0.1 効率の良い実行機構
    0.2 配列
    0.3 関数とその使い方
    0.4 Juliaによる「オブジェクト指向」プログラミング
    0.5 パラメータ化型
    0.6 共用型(Union)
    0.7 マクロと文字列マクロ
    0.8 その他の言語機能

1章 Juliaのインストールと設定
    はじめに
    レシピ1.1 Juliaをバイナリパッケージでインストールする
    レシピ1.2 JuliaをIDEで使う
    レシピ1.3 Juliaをテキストエディタで使う
    レシピ1.4 JuliaをLinuxでソースからビルドする
    レシピ1.5 JuliaをAWSクラウド上のCloud9 IDEで使う
    レシピ1.6 Julia起動時の動作を変更する
    レシピ1.7 Juliaをマルチコアで使う
    レシピ1.8 Juliaのインタラクティブモードを使いこなす
    レシピ1.9 Juliaで計算結果を表示する
    レシピ1.10 パッケージの管理
    レシピ1.11 JuliaをJupyter Notebookで使う
    レシピ1.12 JuliaをJupyterLabで使う
    レシピ1.13 ターミナルしか使えないクラウド環境でJupyter Notebookを使う

2章 データ構造とアルゴリズム
    はじめに
    レシピ2.1 配列中の最小要素のインデックスを取得する
    レシピ2.2 行列乗算を高速に行う
    レシピ2.3 カスタム擬似乱数生成器を実装する
    レシピ2.4 正規表現を使ってGitログを解析する
    レシピ2.5 標準的でない基準でデータをソートする
    レシピ2.6 関数原像の生成 -辞書とセットの機能を理解する
    レシピ2.7 UTF-8文字列を扱う

3章 Juliaによるデータエンジニアリング
    はじめに
    レシピ3.1 ストリームを管理し、ファイルに読み書きする
    レシピ3.2 IOBufferを使って効率的なインメモリストリームを作る
    レシピ3.3 インターネットからデータを取得する
    レシピ3.4 簡単なRESTfulサービスを作ってみる
    レシピ3.5 JSONデータを処理する
    レシピ3.6 日付と時刻を扱う
    レシピ3.7 オブジェクトをシリアライズする
    レシピ3.8 Juliaをバックグラウンドプロセスとして使う
    レシピ3.9 Microsoft Excelファイルを読み書きする
    レシピ3.10 Featherデータを扱う
    レシピ3.11 CSVファイルとFWFファイルを読み込む

4章 Juliaによる数値演算
    はじめに
    レシピ4.1 行列処理を高速化する
    レシピ4.2 条件文のあるループの効率的な実行
    レシピ4.3 完全実施要因計画の生成
    レシピ4.4 級数の部分和によるπの近似
    レシピ4.5 モンテカルロシミュレーションの実行
    レシピ4.6 待ち行列の解析
    レシピ4.7 複素数を用いた計算
    レシピ4.8 単純な最適化を書いてみる
    レシピ4.9 線形回帰で予測する
    レシピ4.10 Juliaのブロードキャストを理解する
    レシピ4.11 @inboundsを使って高速化する
    レシピ4.12 ベクトルの集合から行列を作る
    レシピ4.13 配列ビューを使って使用メモリ量を減らす

5章 変数、型、関数
    はじめに
    レシピ5.1 Juliaのサブタイプを理解する
    レシピ5.2 多重ディスパッチで動作を切り替える
    レシピ5.3 関数を値として使う
    レシピ5.4 関数型でプログラミングする
    レシピ5.5 変数のスコープを理解する
    レシピ5.6 例外処理
    レシピ5.7 名前付きタプルの使い方

6章 メタプログラミングと高度な型
    はじめに
    レシピ6.1 メタプログラミングを理解する
    レシピ6.2 マクロと関数生成を理解する
    レシピ6.3 ユーザ定義型を作ってみる -連結リスト
    レシピ6.4 基本型を定義する
    レシピ6.5 イントロスペクションを使ってJuliaの数値型の構成を調べる
    レシピ6.6 静的配列を利用する
    レシピ6.7 変更可能型と変更不能型の性能差を確認する
    レシピ6.8 型安定性を保証する

7章 Juliaによるデータ分析
    はじめに
    レシピ7.1 データフレームと行列を変換する
    レシピ7.2 データフレームの内容を確認する
    レシピ7.3 インターネット上のCSVデータを読み込む
    レシピ7.4 カテゴリデータを処理する
    レシピ7.5 欠損値を扱う
    レシピ7.6 データフレームを使って分割‐適用‐結合を行う
    レシピ7.7 縦型データフレームと横型データフレームを変換する
    レシピ7.8 データフレームの同一性を判定する
    レシピ7.9 データフレームの行を変換する
    レシピ7.10 データフレーム変換を繰り返してピボットテーブルを作成する

8章 Juliaワークフロー
    はじめに
    レシピ8.1 Revise.jlを用いてモジュールを開発する
    レシピ8.2 コードのベンチマーク
    レシピ8.3 コードのプロファイリング
    レシピ8.4 コードのログを取る
    レシピ8.5 JuliaからPythonを使う
    レシピ8.6 JuliaからRを使う
    レシピ8.7 プロジェクトの依存関係を管理する

9章 データサイエンス
    はじめに
    レシピ9.1 Juliaでデータベースを使う
    レシピ9.2 JuMPを使って最適化問題を解く
    レシピ9.3 最尤推定を行う
    レシピ9.4 Plots.jlを使って複雑なプロットを描く
    レシピ9.5 ScikitLearn.jlを使って機械学習モデルを作る

10章 分散処理
    はじめに
    レシピ10.1 マルチプロセスで計算する
    レシピ10.2 リモートのJuliaプロセスと通信する
    レシピ10.3 マルチスレッドで計算する
    レシピ10.4 分散環境で計算する

索引