關(guān)于環(huán)境與CODING
什么是終端(命令行窗口)?在哪里打開(kāi)?
終端是一個(gè)基于文本的用來(lái)查看、 處理、 和操作您的計(jì)算機(jī)上的文件的應(yīng)用程序。打開(kāi)方法:Windows系統(tǒng),在程序中查找 cmd; Mac系統(tǒng),在Spotlight中查找terminal。更多內(nèi)容可參考 命令行界面簡(jiǎn)介在官網(wǎng)下載 anaconda 很慢,下不下來(lái)怎么辦?
(感謝李斯龍同學(xué)提供的解決方案)使用國(guó)內(nèi)鏡像地址下載:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安裝完anaconda,在命令行中輸入conda upgrade -all
后,顯示找不到 conda 命令怎么辦?
(感謝李佳同學(xué)提供的答案)一般是環(huán)境路徑設(shè)置的問(wèn)題,需要添加conda環(huán)境變量:export PATH=xxx/anaconda/bin:$PATH
將xxx替換成anaconda的安裝路徑。如何創(chuàng)建 Jupyter Notebook?為什么我打開(kāi)后不能執(zhí)行代碼?
打開(kāi) Jupyter 的三種方式:
找到 Jupyter Notebook 可執(zhí)行程序,并點(diǎn)擊打開(kāi)。
先打開(kāi) Anaconda Navigator, 在其中找到 Jupyter Notebook 打開(kāi)。
在命令行中輸入jupyter notebook
創(chuàng)建 notebook 的方式:在打開(kāi)Jupyter Notebook后,進(jìn)入相應(yīng)的目錄,在界面右上方點(diǎn)擊按鈕New
,在下拉菜單中選擇 ’Python 2‘ 或 ’Python 3‘。打開(kāi)后不能運(yùn)行代碼,很可能是因?yàn)閯?chuàng)建了文本文件,而非notebook文件。windows系統(tǒng)中打開(kāi)數(shù)據(jù)文件,顯示很混亂,看不清怎么辦?
Windows中查看文本推薦 Notepad++
Mac中推薦 TextWrangler。導(dǎo)入數(shù)據(jù)出錯(cuò),找不到文件怎么辦?
首先要確認(rèn)文件路徑是否寫(xiě)正確,最簡(jiǎn)單的方法是將數(shù)據(jù)和notebook文件放在同一個(gè)文件夾下,這樣導(dǎo)入數(shù)據(jù)時(shí)只需要寫(xiě)數(shù)據(jù)文件名即可。當(dāng)我使用pd.read_csv
時(shí)顯示錯(cuò)誤 ’NameError: name 'pd' is not defined‘ 是怎么回事?
一般都要先導(dǎo)入相應(yīng)的Python模塊才能使用其提供的方法。這里就需要先導(dǎo)入pandas模塊,使用import pandas as pd關(guān)于繪制直方圖,使用plt.hist()
畫(huà)出的圖形每一豎條都是相連的,沒(méi)有豎線分隔怎么辦?
可使用參數(shù) rwidth 來(lái)設(shè)置每個(gè)豎條的寬度,這樣豎條之間就有空白可以間隔了。比如plt.hist(data, rwidth=0.9)
。繪制直方圖時(shí),中文標(biāo)題無(wú)法顯示怎么辦?
一般默認(rèn)是英文,可在繪圖前做如下設(shè)置。
plt.rcParams['font.sans-serif']=['SimHei'] #用來(lái)正常顯示中文標(biāo)簽 plt.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào)
如果系統(tǒng)中沒(méi)有相應(yīng)的字體,可考慮方案二(mac系統(tǒng),由周瑞珍、李斯龍同學(xué)提供):
from matplotlib.font_manager import *myfont = FontProperties(fname='/Library/Fonts/Lantinghei.ttc')plt.title(u'體重直方圖',fontproperties=myfont)
Lantinghei.ttc是系統(tǒng)fonts目錄下的一個(gè)字體文件,如果該目錄下沒(méi)有這個(gè)文件也可以改成其他的中文字體文件
(Windows系統(tǒng),李佳同學(xué)提供的 matplotlib中文顯示根本的解決辦法)進(jìn)入python的安裝目錄,Lib/site-packages/matplotlib/mpl-data找到matplotlibrc配置文件
打開(kāi)配置文件,找到下面這行#font.serif : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
然后將前面的注釋符號(hào)去掉
找到中文字體放到matplotlib字體庫(kù)中在windows文件夾下,C:/Windows/Fonts/Microsoft YaHei UI復(fù)制該字體,然后粘貼到Lib/site-packages/matplotlib/mpl-data/fonts/ttf文件夾下,并且重命名為Vera.ttf注釋:雅黑字體的文件后綴為ttc,可更改為ttf。至于為什么要重命名,這一步實(shí)際上是把matplotlib中一個(gè)默認(rèn)的字體替換為復(fù)制過(guò)來(lái)的中文字體。其他的根本解決問(wèn)題的方案我都測(cè)試過(guò)并沒(méi)有效果,這個(gè)方法是目前解決最徹底,對(duì)我有效的解決方式,你也可以試一試
-
繪制直方圖,設(shè)置中文標(biāo)題時(shí),顯示錯(cuò)誤 ’SyntaxError: invalid character in identifier‘ 是怎么回事?
代碼一般都是英文輸入,當(dāng)與中文混排時(shí),特別要注意中英文的切換,該同學(xué)使用了中文輸入法下的括號(hào),導(dǎo)致出錯(cuò)。 -
下載Anaconda后無(wú)法安裝怎么辦?
首先確定安裝的版本與系統(tǒng)配置是否一致;
其次查看下載的是圖形界面安裝包還是命令行安裝包,兩者的安裝方式不一樣;
第三,查看下載的安裝包大小與官網(wǎng)給出的大小是否一致,很可能沒(méi)下載完成。如果是情況三,建議使用國(guó)內(nèi)鏡像下載,回到問(wèn)題2查看鏡像地址。
關(guān)于數(shù)據(jù)科學(xué)
-
什么是數(shù)據(jù)科學(xué)(Data Science)?
數(shù)據(jù)科學(xué)是用科學(xué)的方法從各種結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)中提取有用信息的一門(mén)交叉學(xué)科。通過(guò)數(shù)據(jù)收集、清洗、分析、可視化等過(guò)程,用數(shù)據(jù)來(lái)回答特定領(lǐng)域的問(wèn)題。它涉及多個(gè)領(lǐng)域的技術(shù)和理論,包括數(shù)學(xué)、統(tǒng)計(jì)、信息科學(xué)、計(jì)算機(jī)科學(xué),尤其是機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、數(shù)據(jù)庫(kù)、可視化等分支領(lǐng)域。(參考維基百科) -
數(shù)據(jù)科學(xué)中都有哪些職業(yè)角色?
數(shù)據(jù)科學(xué)家(data scientists):有人這樣描述數(shù)據(jù)科學(xué)家, 他們比統(tǒng)計(jì)學(xué)家更懂編程,而比軟件工程師更懂統(tǒng)計(jì)。雖然數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師有相同的工作目標(biāo),即從大量數(shù)據(jù)中發(fā)掘價(jià)值,但顯然數(shù)據(jù)科學(xué)家需要更精湛的技能,他們能完成端到端的數(shù)據(jù)科學(xué)項(xiàng)目,建立并微調(diào)數(shù)據(jù)分析的各類(lèi)模型,并能從事開(kāi)放問(wèn)題的研究等等。
數(shù)據(jù)分析師(data analysts):他們研究數(shù)據(jù)并提供相應(yīng)的報(bào)告或可視化圖表??梢詫?shù)據(jù)分析師看作數(shù)據(jù)科學(xué)家的低配版,即初級(jí)數(shù)據(jù)科學(xué)家,一般是從事數(shù)據(jù)科學(xué)工作的第一步。數(shù)據(jù)分析師不需要具備高深的研究背景來(lái)發(fā)明新算法,但是他們要熟練掌握現(xiàn)有工具來(lái)解決問(wèn)題。
數(shù)據(jù)工程師(data engineers):他們是軟件工程師的一種,為數(shù)據(jù)科學(xué)家們提供軟件基礎(chǔ)設(shè)施服務(wù),建設(shè)強(qiáng)壯的數(shù)據(jù)管道來(lái)清洗、轉(zhuǎn)移、聚合多種雜亂無(wú)章的數(shù)據(jù),并存放到特定的數(shù)據(jù)庫(kù)中。他們需要管理數(shù)據(jù)庫(kù)系統(tǒng),寫(xiě)復(fù)雜的查詢語(yǔ)句來(lái)抽取數(shù)據(jù),維護(hù)多臺(tái)服務(wù)器,懂得Hadoop等分布式系統(tǒng)。
參考:3 Data Careers Decoded and What It Means for You
-
數(shù)據(jù)科學(xué)的工作流程是怎樣的?
雖然數(shù)據(jù)分析是一個(gè)不斷迭代的過(guò)程,而且不同的步驟會(huì)有些交叉,但我們依然可以將該過(guò)程簡(jiǎn)化為以下7個(gè)步驟:
明確問(wèn)題
收集原始數(shù)據(jù)
數(shù)據(jù)清洗
數(shù)據(jù)探索
應(yīng)用模型進(jìn)行深度分析
傳達(dá)分析結(jié)果
使分析過(guò)程可再現(xiàn)
在一個(gè)數(shù)據(jù)項(xiàng)目中,我們絕大多數(shù)的努力一般都將花費(fèi)在獲取和清洗數(shù)據(jù)(步驟2-3)以及展示分析結(jié)果和過(guò)程(步驟6-7)上。
參考:Data science done well looks easy
-
從事數(shù)據(jù)科學(xué)所需要掌握的技能都有哪些?
要從事數(shù)據(jù)科學(xué),我們需要從數(shù)學(xué)知識(shí)、計(jì)算機(jī)知識(shí)、專業(yè)知識(shí)這三個(gè)維度來(lái)考慮。
具有分析思維。
基本的大學(xué)數(shù)學(xué)知識(shí),包括微積分和線性代數(shù)。
統(tǒng)計(jì)學(xué)知識(shí),包括描述統(tǒng)計(jì)學(xué)和推論統(tǒng)計(jì)學(xué)。
編程基礎(chǔ),如Python、R語(yǔ)言、SQL語(yǔ)句。
算法知識(shí),如回歸、分類(lèi)、聚類(lèi)算法等。
數(shù)據(jù)可視化,將你的分析結(jié)果展示出來(lái)。
領(lǐng)域?qū)I(yè)知識(shí),如商業(yè)知識(shí)、生物學(xué)知識(shí)等,視具體分析的問(wèn)題而定。
更詳細(xì)的技能清單請(qǐng)參考 Ultimate Skills Checklist for Your First Data Analyst Job
關(guān)于工具
-
數(shù)據(jù)分析的常用工具都有哪些?
SQL:從數(shù)據(jù)庫(kù)中抽取數(shù)據(jù)的程序語(yǔ)言,是數(shù)據(jù)科學(xué)的必備技能。
Excel:容易上手,所見(jiàn)即所得,無(wú)需編程即可對(duì)數(shù)據(jù)進(jìn)行運(yùn)算和作圖。
R:專門(mén)為數(shù)據(jù)科學(xué)而設(shè)計(jì)的語(yǔ)言,在數(shù)據(jù)科學(xué)領(lǐng)域比Python略微受歡迎些。
Python:簡(jiǎn)單易學(xué),功能強(qiáng)大且豐富,是大學(xué)教學(xué)中最受歡迎的編程語(yǔ)言。
Spark:專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的基于內(nèi)存計(jì)算的引擎。
Tableau:幫人們查看并理解數(shù)據(jù),可進(jìn)行快速分析、可視化并分享結(jié)果。
其他:Perl,Matlab,C#,Mahout,Hadoop,Java
以上工具按使用占比排名,數(shù)據(jù)來(lái)源: 2015 Data Science Salary Survey
我該采用哪種編程語(yǔ)言做數(shù)據(jù)分析呢?Python 還是 R ?
Python和R語(yǔ)言都是數(shù)據(jù)科學(xué)中常用的編程語(yǔ)言,時(shí)常有關(guān)于該使用哪一種語(yǔ)言的爭(zhēng)論,但真是仁者見(jiàn)仁智者見(jiàn)智了。作為一名出色的數(shù)據(jù)科學(xué)家,兩種語(yǔ)言都應(yīng)該掌握。但作為初學(xué)者該先學(xué)哪一種語(yǔ)言呢?我們推薦Python,下面列出了這Python和R的比較,供您參考。
使用人群:程序員使用Python較多,而研究人員多使用R語(yǔ)言。
句法:Python具有類(lèi)似英語(yǔ)的句法結(jié)構(gòu),使得代碼更易理解。R的句法與其他程序語(yǔ)言有些區(qū)別,不太常見(jiàn),對(duì)有一定編程基礎(chǔ)的同學(xué)容易造成理解障礙。
學(xué)習(xí)曲線: 由于以上句法的原因,R 比 Python 難學(xué)一點(diǎn)。Python非常適合編程入門(mén)的學(xué)習(xí)者。
熱門(mén)程度:在Github上最受歡迎的程序語(yǔ)言排名中,Python總是位列前五,而R語(yǔ)言則徘徊在前10以外。
數(shù)據(jù)分析工具包:Python作為多用途的程序語(yǔ)言,在數(shù)據(jù)分析工具包方面的確做的沒(méi)有R語(yǔ)言好。但是Python也有像Pandas這樣專門(mén)用于數(shù)據(jù)分析的模塊。
薪水:平均來(lái)看,使用R語(yǔ)言的數(shù)據(jù)科學(xué)家平均薪水比使用Python的高。(但注意這只是相關(guān)性,并不一定存在因果關(guān)系。)Python的版本該如何選擇?
目前Python有兩類(lèi)版本,Python 2.7.x 和 Python 3.x,大部分的Python庫(kù)都同時(shí)支持這兩者。大多數(shù)情況下 Python 2.7 的代碼都能在Python 3 中運(yùn)行,不過(guò)要注意print
語(yǔ)句。當(dāng)然大部分新引入Python 3 的特性則不會(huì)反向集成到 Python 2.7中。
在這里推薦使用 Python 3,理由如下:
Python 2.7 將在2020年停止維護(hù)。
IPython將停止對(duì)Python 2 的支持,IPython 6.x 將只支持 Python 3。
Python 3.6 具備許優(yōu)秀的特性。用Python做數(shù)據(jù)分析,有哪些入門(mén)資料推薦?
在線視頻教程推薦:
Intro to Python for Data Science
Python for Everybody
書(shū)籍推薦:
《利用Python進(jìn)行數(shù)據(jù)分析》
《統(tǒng)計(jì)思維 》(免費(fèi)英文版)
-
有什么簡(jiǎn)單的方法安裝Python嗎?
推薦安裝 Anaconda,它是一個(gè)開(kāi)源的Python發(fā)行版本,包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng)。使用Anaconda的好處是安裝簡(jiǎn)單,并且無(wú)需為眾多的工具包和安裝環(huán)境而煩擾。 -
我想將自己的數(shù)據(jù)分析過(guò)程分享給大家,有什么好的工具嗎?
推薦Jupyter Notebook,這是一款展示數(shù)據(jù)分析過(guò)程的利器。不僅能在文檔中執(zhí)行Python代碼,更可以將文本、數(shù)學(xué)公式、代碼、圖表編輯在同一文件中,用web網(wǎng)頁(yè)的形式展現(xiàn)出來(lái)。
如果你安裝了Anaconda,則自動(dòng)包含了Jupyter。如果在conda環(huán)境下,使用如下方式安裝:
conda install jupyter notebook
也可以通過(guò)pip安裝:
pip install jupyter notebook
-
Python 中都有哪些常用的數(shù)據(jù)分析工具包?
numpy: 是一個(gè)用Python實(shí)現(xiàn)的科學(xué)計(jì)算包,提供許多高級(jí)的數(shù)值編程工具,如矩陣表示、矢量計(jì)算以及精密計(jì)算庫(kù)。
pandas: 是Python的一個(gè)數(shù)據(jù)分析包,提供了高效且易用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。
matplotlib: 是一個(gè)Python的2D繪圖庫(kù),可以生成出版質(zhì)量級(jí)別的圖像。
scipy:用于科學(xué)和工程計(jì)算的Python軟件庫(kù)。
scikit-learn:用于機(jī)器學(xué)習(xí)的軟件庫(kù)。
有什么好用的代碼編輯器推薦嗎?
Windows操作系統(tǒng)推薦 Notepad++
Mac操作系統(tǒng)推薦 TextWrangler常見(jiàn)的數(shù)據(jù)文件格式有哪些?
CSV:全稱 Comma Separated Values,即用逗號(hào)分隔的數(shù)據(jù)文件,可以使用Excel打開(kāi),也可以用Python或R讀入成數(shù)據(jù)框(dataframe)。
JSON:全稱 Javascript Object Notation,是便于人和機(jī)器讀取的輕量數(shù)據(jù)交換格式。Web服務(wù)經(jīng)常采用此格式來(lái)傳遞數(shù)據(jù)。
SQL:全稱Structured Query Language,用于查詢關(guān)系型數(shù)據(jù)庫(kù)表。
關(guān)于統(tǒng)計(jì)分析
-
做數(shù)據(jù)分析,需要掌握哪些必備的統(tǒng)計(jì)學(xué)知識(shí)?
描述統(tǒng)計(jì)學(xué)
平均值、中位數(shù)、眾數(shù)
方差、標(biāo)準(zhǔn)差
統(tǒng)計(jì)分布: 正態(tài)分布、指數(shù)分布、二項(xiàng)分布、卡方分布
推論統(tǒng)計(jì)學(xué)
假設(shè)檢驗(yàn)
置信區(qū)間
顯著性測(cè)試
實(shí)驗(yàn)設(shè)計(jì)
A/B測(cè)試
實(shí)驗(yàn)條件控制
雙盲測(cè)試
冪律分布
關(guān)于提問(wèn)的建議:
-
獨(dú)立思考
遇到問(wèn)題時(shí),首先自己獨(dú)立思考,通過(guò)回顧課件、動(dòng)手實(shí)踐來(lái)找答案。需要注意的是不要關(guān)注錯(cuò)了問(wèn)題的焦點(diǎn),有時(shí)候問(wèn)題的解決方法不一定在你原先認(rèn)為的方向上。 -
求助網(wǎng)絡(luò)
自己想不出來(lái)時(shí),求助網(wǎng)絡(luò)。使用Google網(wǎng)上搜索,當(dāng)中文找不到結(jié)果時(shí),采用英文搜索。對(duì)于代碼錯(cuò)誤,可以直接將錯(cuò)誤提示拷貝到Google中搜索。 要相信:你所遇到的問(wèn)題大部分都已經(jīng)被他人解決過(guò)了。 -
社群討論
向網(wǎng)絡(luò)求助無(wú)效,并在查看了我們社區(qū)建立的答疑討論區(qū)以及FAQ后,仍無(wú)結(jié)果,那么非常歡迎在答疑討論區(qū)拋出你的問(wèn)題。 -
總結(jié)記錄
在問(wèn)題解決后,并非萬(wàn)事大吉,你需要將問(wèn)題以及解決辦法總結(jié)寫(xiě)下來(lái),避免以后遇到類(lèi)似的問(wèn)題。更歡迎寫(xiě)成心得文章投稿到簡(jiǎn)書(shū)的“解密大數(shù)據(jù)”專題。
作者:波羅學(xué)鏈接:http://www.lxweimin.com/p/0b0b7c33be57來(lái)源:簡(jiǎn)書(shū)著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。