「最全」實至名歸,NumPy官方早有中文教程,結合深度學習,還有防脫髮指南

來源 | 機器學習算法那些事

NumPy 無疑是很多機器學習研究者和開發者的「白月光」。如此優秀的項目,沒有中文版怎麼行?近日,機器之心發現 NumPy 官方早在去年就已出了一箇中文版網站,涵蓋 NumPy 的一切。

在 Github 上一度蟬聯最流行的機器學習和數據科學包 NumPy,已經有了非常之系統的中文文檔,回想起當初細啃 NumPy 之時,不少人不得不徘徊於各大搜索引擎及平臺反覆查找,找到的文檔也許還很不繫統。現在,如果有什麼和 NumPy 的問題,只需要瀏覽這份官方中文文檔就足夠了。它足夠的系統、全面且親民。親民到什麼程度呢?網站還獨一份的配備了「防脫髮指南」。

NumPy 是什麼?它是大名鼎鼎的,使用 Python 進行科學計算的基礎軟件包,是 Python 生態系統中數據分析、機器學習、科學計算的主力軍,極大簡化了向量與矩陣的操作處理。除了計算外,它還包括了:

功能強大的 N 維數組對象。

精密廣播功能函數。

集成 C/C+和 Fortran 代碼的工具。

強大的線性代數、傅立葉變換和隨機數功能

此次中文文檔還強調了它兩大特性:Ndarray 以及切片和索引,這兩部分所涉及的功能在日常操作中是十分常見的。

Ndarray:一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。ndarray 對象是用於存放同類型元素的多維數組。ndarray 中的每個元素在內存中都有相同存儲大小的區域。

切片和索引:ndarray 對象的內容可以通過索引或切片來訪問和修改,與 Python 中 list 的切片操作一樣。ndarray 數組可以基於 0 - n 的下標進行索引,切片對象可以通過內置的 slice 函數,並設置 start, stop 及 step 參數進行,從原數組中切割出一個新數組。

官網地址:https://www.NumPy.org.cn

這個官方中文項目內容繁多,文章數量龐大。機器之心在這裡節選了一些亮點內容,供讀者參考。

教程、文檔應有盡有,中文版強調和深度學習聯繫

從原理開始,中文版增加理論介紹板塊

這個開源的官方中文版教程可以說是非常全面了。它從最基本的理解 NumPy 開始,教程層層推進,直到讓用戶掌握進階的使用方法。

從內容來看,中文版不僅僅是官方英文版本的翻譯,還額外增加了「文章」這一欄目。該欄目提供了對 NumPy 背後的矩陣運算原理的詳細解釋,使得使用者「知其然,也知其所以然」。這是英文版教程中沒有的。

以下為這一部分的目錄,從這裡可以看到,這部分內容主要介紹 NumPy 的基本理論,以及涉及到其應用的理論部分,如數據分析、神經網絡實現,以及在其他代碼庫中的接口等。

基礎篇

理解 NumPy

NumPy 簡單入門教程

Python NumPy 教程

創建 NumPy 數組的不同方式

NumPy 中的矩陣和向量

進階篇

NumPy 數據分析練習

NumPy 神經網絡

使用 NumPy 進行數組編程

NumPy 實現k均值聚類算法

NumPy 實現DNC、RNN和LSTM神經網絡算法

其他篇

OpenCV中的圖像的基本操作

MinPy:MXNet後端的NumPy接口

我們截取了這些文章的部分內容,可以看到,這裡不僅僅會講 NumPy 所實現的功能,還提供了原理的圖解。

對於多維數組的直觀講解(部分),可以看出官方提供了很好的理論解釋和圖示。

注意和深度學習的聯繫

另一方面,NumPy 中文版教程注意到了深度學習近來的發展趨勢,因此推出了結合 NumPy 和百度飛槳框架的深度學習教程。可以說,NumPy 不僅僅只是科學計算工具了,而是深度學習社區的重要組成部分。

如下為這一部分的內容,可以看到,神經網絡相關的所有內容,包括原理和相關實現都涵蓋到了。在這部分還有一個 7 日的深度學習入門課程,供小白用戶參考。

深度學習基礎教程

前言

線性迴歸

數字識別

圖像分類

詞向量

個性化推薦

情感分析

語義角色標註

機器翻譯

生成對抗網絡

七日入門深度學習(正在更新)

Day 1:初識深度學習

Day 1:如何快速入門深度學習?

Day 2:圖像識別基礎與實戰

Day 3:目標檢測基礎與實踐(一)

Day 3:目標檢測實戰-RCNN算法講解

Day 3:目標檢測實戰-YOLOv3檢測物體

以如下代碼為例,這是一個線性迴歸神經網絡構建的代碼部分。可以看到,代碼使用 NumPy 進行加載和預處理,並使用飛槳構建數據分批等的相關函數。

feature_names = [
'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',
'PTRATIO', 'B', 'LSTAT', 'convert'
]
feature_num = len(feature_names)
data = np.fromfile(filename, sep=' ') # 從文件中讀取原始數據
data = data.reshape(data.shape[0] // feature_num, feature_num)
maximums, minimums, avgs = data.max(axis=0), data.min(axis=0), data.sum(axis=0)/data.shape[0]

for i in six.moves.range(feature_num-1):
data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i]) # six.moves可以兼容python2和python3

ratio = 0.8 # 訓練集和驗證集的劃分比例
offset = int(data.shape[0]*ratio)
train_data = data[:offset]
test_data = data[offset:]

def reader_creator(train_data):
def reader:
for d in train_data:


yield d[:-1], d[-1:]
return reader

train_reader = paddle.batch(
paddle.reader.shuffle(
reader_creator(train_data), buf_size=500),
batch_size=BATCH_SIZE)

test_reader = paddle.batch(
paddle.reader.shuffle(
reader_creator(test_data), buf_size=500),
batch_size=BATCH_SIZE)

用戶文檔和參考手冊:覆蓋 NumPy 的一切

當然,最核心的部分當然是 NumPy 本身的文檔了。中文版中對用戶的使用文檔和 NumPy 所有 API 都進行了翻譯和整理工作,基本上用戶需要的內容都可以在這裡找到。

用戶文檔目錄如下,這裡還貼心地提供了和「競品」Matlab 的比較,以及 NumPy 在 C 語言下的 API 使用方法。

NumPy 介紹

快速入門教程

NumPy 基礎知識

其他雜項

與 Matlab 比較

從源代碼構建

使用 NumPy 的 C-API

從這裡可以看到,官方中文版真的是誠意滿滿。不僅提供原始文檔的翻譯,還加上了包括深度學習教程、其他來源的功能+原理解讀材料。對於剛上手 NumPy 的人來說,這就是最佳的學習教程。不管是自學也好,還是用於開發也好,都是極好的。

其他資源及文檔

如果讀到這裡你還不過癮?沒關係,官網還有相關配套的文章及視頻,讓你多樣化地保持新鮮感:

另外,獨有一份的防脫髮指南讓你入坑之時再無後顧之憂:

面向開發者還單獨有一份開發者指南,這是一份詳細的操作清單,如何合理的配置及使用開發環境等一系列問題都已被包含在內。

NumPy 行為準則

Git 教程

設置和使用您的開發環境

開發流程

NumPy 基準測試

NumPy C 風格指南

發佈一個版本

NumPy 治理

NumPy 的用戶數量龐大,開發者社區也非常繁榮。從包括 PyTorch、NumPy 等開源工具陸續推出中文版文檔來看,中文世界在機器學習領域受到了更大的關注。

【end】




信息保留的二值神經網絡IR-Net,落地性能和實用性俱佳 | CVPR 2020

人生苦短,不光要用Python,還要在VSCode裡用

清華學霸組團的工業 AIoT 創企再獲數千萬融資:玩家應推動在邊緣 AI 芯片上跑算法

用Java開發自己的Kubernetes控制器,想試試嗎?

字節跳動武漢招聘 2000 人,距離大廠 Offer,你還差這篇 Java 乾貨!| 原力計劃

數字合約如何將所有權下放?如何使用腳本系統將交易轉換為可編程的智能合約?答案就在這篇文章裡!

你點的每個“在看”,我都認真當成了AI