Julia 語言已成為程式設計界的新寵。
Julia 語言集C語言的執行速度、Ruby 的靈活、Python 的通用性,以及其他各種語言的優勢於一身,並且具有開放原始碼、簡單易掌握的特點,大有潛力成為取代Python 的下一個程式語言。
本書首先講解Julia程式設計語言的基礎知識,如Julia程式設計語言的優勢、開發環境、整合式開發環境、生態系統、外部函數庫等;然後實例剖析講解Julia程式設計語言的基本語法、流程控制、函數應用、面對程式設計。
實例剖析講解Julia的核心優勢,即多維陣列、流、檔案操作、網路通訊、序列化、日期處理方法、平行計算特性;然後講解Julia在資料科學中的應用,即Julia資料工程、資料集的可視圖。
最後講解Julia在機器學習中的應用,即無監督式機器學習和監督式機器學習。在講解過程中考慮讀者的學習習慣,並透過具體實例剖析講解Julia程式開發過程中的熱點問題、關鍵問題及種種難題。
本書主要內容:
■ Julia 程式開發快速入門
■ Julia 程式設計基礎
■ Julia 的選擇結構
■ Julia 的循環結構
■ Julia 的函數和模組
■ Julia 的特徵資料類型
■ Julia 的矩陣操作
■ Julia 的檔案操作
■ Julia 整合開發軟體-- JuliaPro
■ Julia 的資料處理常用套件
■ Julia 的Gadfly 繪圖套件
■ Julia 的日期和時間
■ Julia 的超程式設計和平行計算
■ Julia 的機器學習RDatasets 套件
■ Julia 的決策樹和隨機森林
■ Julia 的線性回歸和K- 平均值
適合讀者群:對資料科學知識和應用方法有興趣、有志學習Julia 並從事資料科學相關工作者,也可作為大專院校電腦相關科系教學參考書。
本書特色
❏從基本概念到資料科學、機器學習的應用
❏從入門到實作,幫助零基礎讀者掌握Julia
作者簡介:
周俊慶
青島慧穀大數據產業發展有限公司專案開發部經理,曾任「餓了麼」公司技術部主管,具有6年以上Python、PHP專案開發經驗。精通Julia、JS、 Java、C、C#等程式設計語言,熟悉多種開源技術,喜歡GET新技能,曾帶領團隊完成多個中小型專案開發,對資料安全、雲端運算等領域持續鑽研。
作者序
前言
近年來Julia 語言越來越紅,已成為程式設計界的新寵。Julia 語言集C語言的執行速度、Ruby 的靈活、Python 的通用性,以及其他各種語言的優勢於一身,並且具有開放原始碼、簡單易掌握的特點,大有潛力成為取代Python 的下一個程式語言。
總之,Julia 就是這樣一種語言。
(1) 快速。Julia 一開始就是為高性能而設計的,它可以透過LLVM 跨平台被編譯成高效的本機程式。
(2) 通用。Julia 使用多排程作為程式設計範式,使其更容易表達物件導向和函數式程式設計的範式。標準函數庫提供了非同步I/O、處理程序控制、記錄檔記錄、效能分析,套件管理員等。
(3) 動態。Julia 是動態類型的,與指令碼語言類似,並且對互動式使用具有很好的支援。
(4) 擅長數值計算。Julia 擅長數值計算,它的語法適用於數學計算,支援多種數值型態,並且支援平行計算。Julia 的多排程適合定義數值和類別陣列的資料類型。
(5) 可選的類型標記。Julia 擁有豐富的資料類型描述,這可以使程式更具可讀性。
(6) 可組合。Julia 的包可以很自然地組合執行。舉例來說,單位數量的矩陣或資料表一列中的貨幣和顏色可以一起組合使用並且擁有良好的效能。
✤ 本書結構
本書共16 章,實際章節安排如下。
■ 第 1 章:說明 Julia 程式語言的基礎知識,如 Julia 程式語言的特點、下載與安裝、程式的撰寫、互動式視窗的提示模式、與其他程式語言的區別。
■ 第 2 章到第 8 章:說明 Julia 程式語言的基本語法、選擇結構、循環結構、函數和模組、特徵資料類型、矩陣操作、檔案操作。
■ 第 9 章:說明 Julia 整合開發軟體——JuliaPro,即 JuliaPro 的下載、安裝及操作技巧。
■ 第 10 章到第 13 章:說明 Julia 在資料科學中的應用,即資料處理常用套俏、Gadfly 繪圖套件、日期和時間、元程式設計和平行計算。
■ 第 14 章到第 16 章:說明 Julia 在機器學習中的應用,即機器學習RDatasets 套件、決策樹、隨機森林、線性回歸和K- 平均值。
✤ 本書特色
本書的特色歸納如下。
■ 實用性:本書首先著眼於 Julia 實戰應用,然後探討深層次的技巧問題。
■ 詳盡的案例:本書每一章都附有大量的案例,並透過這些實例介紹基礎知識。讀者只要反覆練習筆者精心挑選的案例,並舉一反三,就可以掌握Julia 程式設計的實戰技巧,並能學以致用。
■ 全面性:本書包含了 Julia 程式設計實戰的所有知識,包含基礎知識、開發環境和整合式開發環境、基本語法、選擇結構、循環結構、函數和模組、特徵資料類型、矩陣操作、檔案操作、資料處理
DataFrames 和CSV 套件、Gadfly 繪圖套件、日期和時間、元程式設計、平行計算、機器學習RDatasets 套件、決策樹、隨機森林、線性回歸和K- 平均值。
■ 內容表現上「具體生動,圖文並茂」:為讓讀者在學習知識時,不至於太過死板,本書採用了大量的圖表、圖形。
✤ 本書適合的讀者
本書適合對資料科學知識和應用方法有興趣的讀者,也適合有志學習Julia 並從事資料科學相關工作的人員,還可以作為大專院校的電腦及相關專業的教學參考書。
✤ 繁體中文版說明事項
本書原文為簡體中文,為維持全書原貌,本書圖例均使用原書中的簡體中文,請讀者在閱讀時對應前後文。
✤ 創作團隊
本書由周俊慶、張瑞麗撰寫,周鳳禮、陳宣各、周令、張新義、周二社、王征等人參與部分撰寫工作,並對本書的撰寫提出寶貴意見。
由於時間倉促,加之水準有限,書中不足之處在所難免,敬請讀者批評指正。
前言
近年來Julia 語言越來越紅,已成為程式設計界的新寵。Julia 語言集C語言的執行速度、Ruby 的靈活、Python 的通用性,以及其他各種語言的優勢於一身,並且具有開放原始碼、簡單易掌握的特點,大有潛力成為取代Python 的下一個程式語言。
總之,Julia 就是這樣一種語言。
(1) 快速。Julia 一開始就是為高性能而設計的,它可以透過LLVM 跨平台被編譯成高效的本機程式。
(2) 通用。Julia 使用多排程作為程式設計範式,使其更容易表達物件導向和函數式程式設計的範式。標準函數庫提供了非同步I/O、處理程序控制、記錄檔記錄、效能分析...
目錄
前言
01 Julia 程式開發快速入門
1.1 初識Julia 語言
1.2 Julia 的下載與安裝
1.3 Julia 程式的撰寫
1.4 Julia 互動式視窗的提示模式
1.5 Julia 互動式視窗的快速鍵
1.6 Julia 與他其程式語言的比較
02 Julia 程式設計基礎
2.1 常數和變數
2.2 基底資料型態
2.3 運算子
03 Julia 的選擇結構
3.1 if 敘述
3.2 關係運算子
3.3 邏輯運算子
3.4 巢狀結構if 敘述
3.5 條件運算子和條件運算式
3.6 複合運算式
3.7 例外處理
04 Julia 的循環結構
4.1 while 循環
4.2 無限循環
4.3 for 循環
4.4 在for 循環中使用range() 函數
4.5 循環巢狀結構
4.6 break 敘述
4.7 continue 敘述
05 Julia 的函數和模組
5.1 初識函數
5.2 內建函數
5.3 使用者自訂函數
5.4 模組
06 Julia 的特徵資料類型
6.1 陣列
6.2 元組
6.3 字典
6.4 集合
07 Julia 的矩陣操作
7.1 初識矩陣
7.2 矩陣的連接
7.3 矩陣的運算
7.4 矩陣的函數應用
7.5 過濾矩陣中的資料
08 Julia 的檔案操作
8.1 檔案的基本操作
8.2 檔案中的矩陣操作
8.3 CSV 檔案的操作
8.4 IOBuffer 的操作
09 Julia 整合開發軟體-- JuliaPro
9.1 JuliaPro 的下載與安裝
9.2 JuliaPro 的介面與操作技巧
10 Julia 的資料處理常用套件
10.1 DataFrames 套件
10.2 CSV 套件
11 Julia 的Gadfly 繪圖套件
11.1 初識Gadfly 套件
11.2 繪製圖形
11.3 繪製三角函數圖形
11.4 Gadfly 套件繪圖實例
11.5 儲存Gadfly 繪製的圖形並在網頁顯示
12 Julia 的日期和時間
12.1 初識Dates 模組
12.2 Date() 函數
12.3 DateTime() 函數
12.4 時間運算
12.5 時間序列
13 Julia 的超程式設計和平行計算
13.1 超程式設計
13.2 平行計算
14 Julia 的機器學習RDatasets 套件
14.1 初識RDatasets 套件
14.2 iris 資料集的操作
14.3 iris 資料集的圖表顯示
15 Julia 的決策樹和隨機森林
15.1 決策樹
15.2 隨機森林
16 Julia 的線性回歸和K- 平均值
16.1 線性回歸
16.2 K- 平均值
前言
01 Julia 程式開發快速入門
1.1 初識Julia 語言
1.2 Julia 的下載與安裝
1.3 Julia 程式的撰寫
1.4 Julia 互動式視窗的提示模式
1.5 Julia 互動式視窗的快速鍵
1.6 Julia 與他其程式語言的比較
02 Julia 程式設計基礎
2.1 常數和變數
2.2 基底資料型態
2.3 運算子
03 Julia 的選擇結構
3.1 if 敘述
3.2 關係運算子
3.3 邏輯運算子
3.4 巢狀結構if 敘述
3.5 條件運算子和條件運算式
3.6 複合運算式
3.7 例外處理
04 Julia 的循環結構
4.1 while 循環
4.2 無限循環
4.3 for 循環
4.4 在for 循...