七個用於資料科學(data science)的命令列工具
資料科學是OSEMN(和 awesome 相同發音),它包括獲取(Obtaining)、整理(Scrubbing)、探索(Exploring)、建模(Modeling)和翻譯(iNterpreting)資料。作為一名資料科學家,我用命令列的時間非常長,尤其是要獲取、整理和探索資料的時候。而且我也不是唯一一個這樣做的人。最近,Greg Reda介紹了可用於資料科學的經典命令列工具。在這之前,Seth Brown介紹瞭如何在Unix下進行探索性的資料分析。
下面我將介紹在我的日常工作中發現很有用的七個命令列工具。包括:jq、 json2csv、 csvkit、scrape、 xml2json、 sample 和 Rio。(我自己做的scrape、sample和Rio可以在
1. jq – sed for JSON
JSON現在越來越流行,尤其當API盛行了以後。我還記得處理JSON時,用grep和sed寫著醜陋的程式碼。謝謝jq,終於可以不用寫的這麼醜了。
假設我們對2008總統大選的所有候選人感興趣。紐約時報有一個關於競選財務的API。讓我們用curl取一些JSON:
1 | curl-s'http://api.nytimes.com/svc/elections/us/v3/finances/2008/president/totals.json?api-key=super-secret' > nyt.json |
-s表示靜默模式。然後我們用jq最簡單的格式jq ‘.’,可以把得到的醜陋的程式碼
1 | {"status":"OK","base_uri":"http://api.nytimes.com/svc/elections/us/v3/finances/2008/","cycle":2008,"copyright":"Copyright (c) 2013 The New York Times Company. All Rights Reserved.","results":[{"candidate_name":"Obama, Barack","name":"Barack Obama","party":"D", |
轉換成漂亮的格式:
1 | <nyt.json jq'.' | head { "results": [ { "candidate_id": "P80003338", "date_coverage_from": "2007-01-01", "date_coverage_to": "2008-11-24", "candidate_name": "Obama, Barack", "name": "Barack Obama", "party": "D", |
同時,jq還可以選取和過濾JSON資料:
1234 | <nyt.json jq-c'.results[] | {name, party, cash: .cash_on_hand} | select(.cash | tonumber > 1000000)' {"cash":"29911984.0","party":"D","name":"Barack Obama"}{"cash":"32812513.75","party":"R","name":"John McCain"}{"cash":"4428347.5","party":"D","name":"John Edwards"} |
更多使用方法參見手冊,但是不要指望jq能做所有事。Unix的哲學是寫能做一件事並且做得好的程式,但是jq功能強大!下面就來介紹json2csv。
2. json2csv – 把JSON轉換成CSV
雖然JSON適合交換資料,但是它不適合很多命令列工具。但是不用擔心,用json2csv我們可以輕鬆把JSON轉換成CSV。現在假設我們把資料存在million.json裡,僅僅呼叫
1 | <million.json json2csv-kname,party,cash |
就可以把資料轉換成:
123 | Barack Obama,D,29911984.0John McCain,R,32812513.75John Edwards,D,4428347.5 |
有了CSV格式我們就可以用傳統的如 cut -d 和 awk -F 一類的工具了。grep和sed沒有這樣的功能。因為CSV是以表格形式儲存的,所以csvkit的作者開發了csvkit。
3. csvkit – 轉換和使用CSV的套裝
csvkit不只是一個程式,而是一套程式。因為大多數這類工具“期望”CSV資料有一個表頭,所以我們在這裡加一個。
1 | echo name,party,cash|cat-million.csv>million-header.csv |
我們可以用csvsort給候選人按競選資金排序並展示:
123456789 | <million-header.csv csvsort-rc cash|csvlook|---------------+-------+--------------||name|party|cash||---------------+-------+--------------||John McCain|R|32812513.75||Barack Obama|D|29911984.0||John Edwards|D|4428347.5||---------------+-------+--------------| |
看起來好像MySQL哈?說到資料庫,我們可以把CSV寫到sqlite資料庫(很多其他的資料庫也支援)裡,用下列命令:
12345678 | csvsql--db sqlite:///myfirst.db --insert million-header.csvsqlite3 myfirst.dbsqlite>.schema million-headerCREATE TABLE"million-header"(name VARCHAR(12)NOTNULL,party VARCHAR(1)NOTNULL,cash FLOATNOTNULL); |
插入後資料都會正確因為CSV裡也有格式。此外,這個套裝裡還有其他有趣工具,如 in2csv、 csvgrep 和csvjoin。通過csvjson,資料甚至可以從csv轉換會json。總之,你值得一看。
4. scrape – 用XPath和CSS選擇器進行HTML資訊提取的工具
JSON雖然很好,但是同時也有很多資源依然需要從HTML中獲取。scrape就是一個Python指令碼,包含了lxml和cssselect包,從而能選取特定HTML元素。維基百科上有個網頁列出了所有國家的邊界線語國土面積的比率,下面我們來把比率資訊提取出來吧
1234567891011 | curl-s'http://en.wikipedia.org/wiki/List_of_countries_and_territories_by_border/area_ratio' | scrape -b -e 'table.wikitable > tr:not(:first-child)' | head<!DOCTYPE html><html><body><tr><td>1</td><td>Vatican City</td><td>3.2</td><td>0.44</td><td>7.2727273</td></tr> |
-b命令讓scrape包含和標籤,因為有時xml2json會需要它把HTML轉換成JSON。
5. xml2json – 把XML轉換成JSON
如名字所說,這工具就是把XML(HTML也是一種XML)轉換成JSON的輸出格式。因此,xml2json是連線scrape和jq之間的很好的橋樑。
1234567891011 | curl-s'http://en.wikipedia.org/wiki/List_of_countries_and_territories_by_border/area_ratio' | scrape -be 'table.wikitable > tr:not(:first-child)' | xml2json | jq -c '.html.body.tr[] | {country: .td[1][], border: .td[2][], surface: .td[3][], ratio: .td[4][]}' | head{"ratio":"7.2727273","surface":"0.44","border":"3.2","country":"Vatican City"}{"ratio":"2.2000000","surface":"2","border":"4.4","country":"Monaco"}{"ratio":"0.6393443","surface":"61","border":"39","country":"San Marino"}{"ratio":"0.4750000","surface":"160","border":"76","country":"Liechtenstein"}{"ratio":"0.3000000","surface":"34","border":"10.2","country":"Sint Maarten(Netherlands)"}{"ratio":"0.2570513","surface":"468","border":"120.3","country":"Andorra"}{"ratio":"0.2000000","surface":"6","border":"1.2","country":"Gibraltar(United Kingdom)"}相關推薦七個用於資料科學(data science)的命令列工具資料科學是OSEMN(和 awesome 相同發音),它包括獲取(Obtaining)、整理(Scrubbing)、探索(Exploring)、建模(Modeling)和翻譯(iNterpreting)資料。作為一名資料科學家,我用命令列的時間非常長,尤其是要獲取、 GitHub Python資料科學聚焦:推薦5個開源資料科學專案!這篇文章重點介紹了5個數據科學專案,這些專案都是開源的,並且存在於GitHub儲存庫中,側重於高階機器學習庫和低階支援工具。 本文將通過GitHub repos重點介紹一組精選的開源Python資料科學專案。 之前的文章包括一些涵蓋AutoML、自然語言處理、資料視覺化、機器學習工作流程的庫。這一次,我們 從零開始學習Python用於資料科學,Python比你想象的要強大!為什麼是Python? Python是一種多用途的程式語言,廣泛應用於資料科學,被稱為本世紀最性感的工作。資料科學家通過大資料集挖掘,以獲得洞察力並做出有意義的資料驅動決策。Python是一種通用的程式語言,用於Web開發、網路建設、科學計算等領域。我們將進一步討論python中的一系列令人敬畏 Linux下用於瀏覽網頁和下載檔案的幾個命令列工具1. links Links是用C語言寫的一個開源web瀏覽器,支援包括Linux、Windows、OS X和OS/2在內的所有主流平臺。它提供了基於文字和圖形介面兩種版本。大多數標準的Linux發行版都預設包含了基於文字的版本。如果您的發行版中預設沒有安裝links, MySQL 自帶工具使用介紹 使用命令列工具mysqlimport匯入資料MySQL 資料庫不僅提供了資料庫的伺服器端應用程式,同時還提供了大量的客戶端工具程式,如mysql,mysqladmin,mysqldump 等等,都是大家所熟悉的。雖然有些人對這些工具的功能都已經比較瞭解了,但是真正能將這些工具程式物盡其用的人可能並不是太多,或者知道的不全,也可能並不完全瞭解其中的某種特 iOS音視訊—FFmepg基礎知識:命令列工具使用&封裝格式&視訊編碼音訊編碼資料瞭解&視訊畫素音訊取樣資料格式iOS音視訊相關目錄 FFmepg基礎知識 封裝格式 1、封裝格式:mp4、mov、flv、wmv等等… 2、作用:視訊流+音訊流按照格式進行儲存在一個檔案中 3、MPEG2-TS格式:傳輸流,又稱TS、TP、MPEG-TS或M2T,用於音效、影象與資料的通訊協議。屬於 curl 7.63.0 釋出,用 URL 傳輸資料的命令列工具和庫curl 7.63.0 釋出了,此版本主要更新如下: curl: --write-out 新增 %{stderr} 和 %{stdout} curl: win32 新增選項 --dump-module-paths setopt: 新增  監控Linux效能的18個命令列工具對於系統和網路管理員來說每天監控和除錯Linux系統的效能問題是一項繁重的工作。在IT領域作為一名Linux系統的管理員工作5年後,我逐漸認識到監控和保持系統啟動並執行是多麼的不容易。基於此原因,我們已編寫了最常使用的18個命令列工具列表,這些工具將有助於每個Linux/Unix 系統管理員的工作。 假裝很忙的三個命令列工具有時候你很忙。而有時候你只是需要看起來很忙,就像電影中的黑客一樣。有一些開源工具就是幹這個的。 如果你在消磨時光時看過諜戰片、動作片或犯罪片,那麼你就會清晰地在腦海中勾勒出黑客的電腦螢幕的樣子。就像是在《黑客帝國》電影中,程式碼雨 一樣的十六進位制數字流,又或 監控 Linux 效能的 18 個命令列工具5.Netstat-網路狀態統計 Netstat是一個用於監控進出網路的包和網路介面統計的命令列工具。它是一個非常有用的工具,系統管理員可以用來監控網路效能,定位並解決網路相關問題。 # netstat -a | moreActive Internet connections (servers and es 帶你瞭解3個Python命令列工具用 Click、Docopt 和 Fire 庫寫你自己的命令列應用。有時對於某項工作來說一個命令列工具就足以勝任。命令列工具是一種從你的 shell 或者終端之類的地方互動或執行的程式。Git 和 Curl 就是兩個你也許已經很熟悉的命令列工具。當你有一小段程式碼需要在一行中 cTop:用於容器監控的命令列工具 | Linux 中國ctop 為多個容器提供了一個簡潔凝練的實時指標概覽。它是一個類 top 的針對容器指標的介面。 ZooKeeper系列之七:ZooKeeper命令列工具當啟動 ZooKeeper 服務成功之後,輸入下述命令,連線到 ZooKeeper 服務: zkCli.sh –server 10.77.20.23:2181 連線成功後,系統會輸出 ZooKeeper 的相關環境以及配置資訊,並在螢幕輸出“ Welcome to TFS常見的幾個命令列工具最近用到一些對TFS相關的幾個命令列工具,感覺還是比較有用,在此介紹給大家,希望對大家有用. 1 TfsConfig TfsConfig.exe的預設位置是%Program files%\Microsoft Team Foundation Server 2010\Tools\下面,而且它是在TFS伺服 28 個必備的 Linux 命令列工具dstat & sardstat 是一個用來替換 vmstat, iostat, netstat, nfsstat 和 ifstat 這些命令的工具,是一個全能系統資訊統計工具。slurm 網路流量圖形化工具vim & emacsVim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯 ionic4+angular6 混合移動開發 capacitor cordova Xcode 命令列工具 Command Line Tools首先要更新或者安裝 ionic cli npm install -g ionic 建立專案 ionic start ionic-angular tabs --type=angular –type=angular 是需要多加的引數,現在官方只整合好了angua Capacitor 新一代混合應用“神器” 會代替Cordova嗎?? Xcode 命令列工具 Command Line Tools1.介紹or暢想 Capacitor是由ionic團隊最新開發維護的一個跨平臺的應用程式容器,可以輕鬆構建在iOS,Android,Electron 和 Web 上本機執行的Web應用程式。我們稱這些應用為“Native Cygwin(類UNIX模擬環境)&CURL(強大的http命令列工具)前言: 需要我用curl試下能否傳送post請求調起公司的模擬系統(目前) 跟著大佬的腳步,親測一把~ 感謝大佬的提供的部落格和指導 @咩神 個人部落格園及來源地址 Cygwin(類UNIX模擬環境) 一個可以讓你在windows下玩轉linux命令的工具 Cygwin官網下載安裝包:http svn使用規範、在Windows下使用svn命令列工具、svn命令列的解釋以前在公司一直使用git,現在公司有用svn,一時間還真的不知道如何下手,在網上搜尋了很多大神和官網文件的指導,總結了下面一份教程,希望能夠幫助大家快速上手,如果想更細緻的瞭解相關內容,可以點選每個小節裡提供的的連結。 1、Windows下命令列工具: 發現原來安裝的tortoisesvn已經整合到she macOS 升級後重裝命令列工具的問題問題背景 最近升級個人macbook 從 10.13 到 10.14 在終端輸入 git 不能用了,發現是重灌作業系統後原來的 Command Line Tools 被自動解除安裝了, 採用 xcode-select --install 命令發現 currently unavailable. 解決方法 |