日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

數(shù)據科學家必備!12個基本命令行工具幫你擺脫鼠標

 漢無為 2018-04-23


大數(shù)據文摘作品

編譯:汪小七、Katrine Ren、夏雅薇


本篇文章作者是Matthew Mayo,選自KDnuggets(一個著名的數(shù)據挖掘網站)。簡要介紹了12種類Unix操作系統(tǒng)命令行工具,以及這些命令行工具對數(shù)據科學研究和數(shù)據科學家的價值。


這篇文章概述了十二個可以用于數(shù)據科學項目的類Unix操作系統(tǒng)命令行工具。


這一系列工具不包括任何基本的文件管理命令(pwd、ls、mkdir、rm……)和遠程桌面管理工具(rsh、ssh……),但是從數(shù)據科學角度來看,這些命令行工具都是比較實用的,通常用來進行不同程度的數(shù)據檢驗和數(shù)據處理。


這一系列命令行工具都包含在一種特殊的類Unix操作系統(tǒng)中。


這些固然都是最基礎的操作命令,但我還是鼓勵你針對某些命令行自行查找更多的應用實例。


在本文中,工具名都可以直接鏈接到維基百科詞條,而不是Linux的使用手冊頁面,我覺得前者對于新手來說更友好一點。


Linux的使用手冊頁面:

https://linux./man/


wget


wget是一個文件檢索工具,用于從遠程位置下載文件,其下載遠程文件的基本用法如下:


wget:

https://en./wiki/wget


~$ wget https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv
--2018-03-20 18:27:21--  https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.20.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.20.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3716 (3.6K) [text/plain]
Saving to: ‘iris.csv’
iris.csv
100 [=======================================================================================================>]   3.63K  --.-KB/s    in 0s    
2018-03-20 18:27:21 (19.9 MB/s) - ‘iris.csv’ saved [3716/3716]


cat


cat是將文件內容標準輸出的工具,此名稱來自連接(concatenate)這個詞。它可以用于實現(xiàn)一些較復雜的文件處理,包括將文件合并在一起(也就是真正的文件連接)、將文件追加到另一個文件中、以及給文件行編號等功能。


cat:

https://en./wiki/Cat_(Unix)


~$ cat iris.csv
sepal_length,sepal_width,petal_length,petal_width,species
5.1,3.5,1.4,0.2,setosa
4.9,3,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa
5,3.6,1.4,0.2,setosa
...
6.7,3,5.2,2.3,virginica
6.3,2.5,5,1.9,virginica
6.5,3,5.2,2,virginica
6.2,3.4,5.4,2.3,virginica
5.9,3,5.1,1.8,virginica


wc


wc命令用于生成字數(shù)統(tǒng)計、行計數(shù)、字節(jié)計數(shù)以及與文本文件相關的內容。在沒有設置其他選項的情況下,wc的默認輸出是一行,由左到右依次是行數(shù)、字數(shù)統(tǒng)計(注意:每一行上沒有空格中斷的單個字符串被算作一個單詞)、字符計數(shù)和文件名。


wc:

https://en./wiki/Wc_(Unix)


~$ wc iris.cs
151  151 3716 iris.csv


head


head命令是標準地輸出文件的前n行(默認為10行),顯示行數(shù)可以用-n項設置,如下。


Head:

https://en./wiki/Head_(Unix)


~$ head -n 5 iris.csv
sepal_length,sepal_width,petal_length,petal_width,species
5.1,3.5,1.4,0.2,setosa
4.9,3,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa


tail


接下來猜猜看tail是用來實現(xiàn)什么功能的?


tail:

https://en./wiki/Tail_(Unix)


~$ tail -n 5 iris.csv
6.7,3,5.2,2.3,virginica
6.3,2.5,5,1.9,virginica
6.5,3,5.2,2,virginica
6.2,3.4,5.4,2.3,virginica
5.9,3,5.1,1.8,virginica


運行命令行魔法


find


find是用于搜索特定文件的文件系統(tǒng)工具。以下命令就是在樹結構中搜索特殊文件的例子,即從當前目錄(“.”)開始,搜索以“iris”開頭,并以任意字符結尾,類型為普通文件類型(“-type f”)的文件:


find:

https://en./wiki/Find_(Unix)


~$ find . -name 'iris*' -type f
./iris.csv
./notebooks/kmeans-sharding-init/sharding/tests/results/iris_time_results.csv
./notebooks/ml-workflows-python-scratch/iris_raw.csv
./notebooks/ml-workflows-python-scratch/iris_clean.csv
...


cut


cut命令用于文本分割,雖然cut用于分割文本可以在各種標準下進行,但是它對于CSV文件中列數(shù)據的提取尤其有用。以下命令即為輸出使用逗號分隔符('-d ','')的iris.csv文件的第五列(“- f 5”):


cut:

https://en./wiki/Cut_(Unix)


~$ cut -d ',' -f 5 iris.csv
species
setosa
setosa
setosa
...


uniq


uniq是通過將文本中的重復行進行去重,從而將文本輸出標準化的工具。就其本身而言,這似乎并沒多大用處,但是當其用于構建pipelines時(將一個命令的輸出連接到另一個命令的輸入等等)將變得非常有用。


uniq:

https://en./wiki/Uniq


以下命令結果是iris數(shù)據集的第五列中包含的不同類別及其計數(shù):


~$ tail -n 150 iris.csv | cut -d ',' -f 5 | uniq -c
50 setosa
50 versicolor
50 virginica


奶牛說了什么


awk


awk實際上不是一個'命令',而是一套完整的編程語言。它用于處理和提取文本, 且可以從命令行中以單行命令的形式調用。


awk:

https://en./wiki/AWK


完全掌握awk是需要一些時間的,但在此之前,這里有一個可以練習的例子??紤]到樣本文件iris.csv相當有限的文本多樣性,以下這行命令就可以調用awk,在給定的文件(“iris.csv”)中搜索字符串“setosa”,并將所有項(在$0變量中保存的)一個一個地標準輸出如下:


~$ awk '/setosa/ { print $0 }' iris.csv
5.1,3.5,1.4,0.2,setosa
4.9,3,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa
5,3.6,1.4,0.2,setosa


grep


grep是另一種文本處理工具,用來查找匹配字符串和正則表達式。


grep:

https://en./wiki/Grep


~$ grep -i 'vir' iris.csv
6.3,3.3,6,2.5,virginica
5.8,2.7,5.1,1.9,virginica
7.1,3,5.9,2.1,virginica
...


當你需要花大量的時間進行文本處理時,grep無疑是你需要掌握的一個好工具,更多有用的信息請參考網站:


https://www./2009/03/15-practical-unix-grep-command-examples。


sed


sed是一個流編輯器,也是一個文本處理和轉換工具,類似于awk。下面我們將用此命令把iris.csv文件中的“setosa”改為“irissetosa”:


sed:

https://en./wiki/Sed


~$ sed 's/setosa/iris-setosa/g' iris.csv > output.csv
~$ head output.csv
sepal_length,sepal_width,petal_length,petal_width,species
5.1,3.5,1.4,0.2,iris-setosa
4.9,3,1.4,0.2,iris-setosa
4.7,3.2,1.3,0.2,iris-setosa
...


history


history非常簡單,但也非常有用,特別是當你需要用命令語句來完成一些重復性的數(shù)據準備工作時。


History:

https://en./wiki/History_(Unix)


~$ history547  tail iris.csv
548  tail -n 150 iris.csv
549  tail -n 150 iris.csv | cut -d ',' -f 5 | uniq -c
550  clear
551  history


至此,這篇文章已經對這12個方便的命令行工具都進行了簡單的介紹,這只是對數(shù)據科學(或其他任何目標)可能用到的命令行工具的一種粗淺的體驗?,F(xiàn)在,是時候讓它們把你的生產力從鼠標中解放出來了。


原文鏈接:

https://www./2018/03/top-12-essential-command-line-tools-data-scientists.html


【今日機器學習概念】

Have a Great Definition

志愿者介紹

回復志愿者”加入我們

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多