❶ 大數據能用python么
大數據可以使用Python。
為什麼是python大數據?
從大數據的網路介紹上看到,大數據想要成為信息資產,需要有兩步,一是數據怎麼來,二是數據處理。
數據怎麼來?
在數據怎麼來這個問題上,數據挖掘無疑是很多公司或者個人的優選,畢竟大部分公司或者個人是沒有能力產生這么多數據的,只能是挖掘互聯網上的相關數據。
網路爬蟲是Python的傳統強勢領域,較流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨當一面的類庫。
當然,網路爬蟲並不僅僅只是打開網頁,解析HTML怎麼簡單。高效的爬蟲要能夠支持大量靈活的並發操作,常常要能夠同時幾千甚至上萬個網頁同時抓取,傳統的線程池方式資源浪費比較大,線程數上千之後系統資源基本上就全浪費在線程調度上了。
Python由於能夠很好的支持協程(Coroutine)操作,基於此發展起來很多並發庫,如Gevent,Eventlet,還有Celery之類的分布式任務框架。被認為是比AMQP更高效的ZeroMQ也是較早就提供了Python版本。有了對高並發的支持,網路爬蟲才真正可以達到大數據規模。
數據處理:
有了大數據,那麼也需要處理,才能找到適合自己的數據。而在數據處理方向,Python也是數據科學家較喜歡的語言之一,這是因為Python本身就是一門工程性語言,數據科學家用Python實現的演算法,可以直接用在產品中,這對於大數據初創公司節省成本是非常有幫助的。
更多Python知識請關注Python視頻教程欄目。
❷ 為什麼大數據用python
Python 已經成為較受歡迎的程序設計語言之一。自從2004年以後,python的使用率呈線性增長。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。由於Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經採用Python來教授程序設計課程。
數據就是資產。大數據工程師是現在十分火熱、高薪的職位。做大數據開發和分析不僅要用到java,Python也是較重要的語言。
那麼,今天我們就來分析一下,Python之於大數據的意義和作用。
相關推薦:《Python入門教程》
什麼是大數據?
大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
為什麼是python大數據?
從大數據的網路介紹上看到,大數據想要成為信息資產,需要有兩步,一是數據怎麼來,二是數據處理。
數據怎麼來:
在數據怎麼來這個問題上,數據挖掘無疑是很多公司或者個人的優選,畢竟大部分公司或者個人是沒有能力產生這么多數據的,只能是挖掘互聯網上的相關數據。
網路爬蟲是Python的傳統強勢領域,較流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨當一面的類庫。
當然,網路爬蟲並不僅僅只是打開網頁,解析HTML怎麼簡單。高效的爬蟲要能夠支持大量靈活的並發操作,常常要能夠同時幾千甚至上萬個網頁同時抓取,傳統的線程池方式資源浪費比較大,線程數上千之後系統資源基本上就全浪費在線程調度上了。
Python由於能夠很好的支持協程(Coroutine)操作,基於此發展起來很多並發庫,如Gevent,Eventlet,還有Celery之類的分布式任務框架。被認為是比AMQP更高效的ZeroMQ也是較早就提供了Python版本。有了對高並發的支持,網路爬蟲才真正可以達到大數據規模。
數據處理:
有了大數據,那麼也需要處理,才能找到適合自己的數據。而在數據處理方向,Python也是數據科學家較喜歡的語言之一,這是因為Python本身就是一門工程性語言,數據科學家用Python實現的演算法,可以直接用在產品中,這對於大數據初創公司節省成本是非常有幫助的。
正是因為這些原因,才讓python語言成為很多公司處理大數據的優選。加之python本身具有簡單、易學、庫多等原因,讓越來越多的人選擇轉行python開發。
❸ python怎麼做大數據分析
數據獲取:公開數據、Python爬蟲外部數據的獲取方式主要有以下兩種。(推薦學習:Python視頻教程)
第一種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。
另一種獲取外部數據的方式就是爬蟲。
比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你可以對某個行業、某種人群進行分析。
在爬蟲之前你需要先了解一些 Python 的基礎知識:元素(列表、字典、元組等)、變數、循環、函數………
以及,如何用 Python 庫(urlpb、BeautifulSoup、requests、scrapy)實現網頁爬蟲。
掌握基礎的爬蟲之後,你還需要一些高級技巧,比如正則表達式、使用cookie信息、模擬用戶登錄、抓包分析、搭建代理池等等,來應對不同網站的反爬蟲限制。
數據存取:SQL語言
在應對萬以內的數據的時候,Excel對於一般的分析沒有問題,一旦數據量大,就會力不從心,資料庫就能夠很好地解決這個問題。而且大多數的企業,都會以SQL的形式來存儲數據。
SQL作為最經典的資料庫工具,為海量數據的存儲與管理提供可能,並且使數據的提取的效率大大提升。你需要掌握以下技能:
提取特定情況下的數據
資料庫的增、刪、查、改
數據的分組聚合、如何建立多個表之間的聯系
數據預處理:Python(pandas)
很多時候我們拿到的數據是不幹凈的,數據的重復、缺失、異常值等等,這時候就需要進行數據的清洗,把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
對於數據預處理,學會 pandas (Python包)的用法,應對一般的數據清洗就完全沒問題了。需要掌握的知識點如下:
選擇:數據訪問
缺失值處理:對缺失數據行進行刪除或填充
重復值處理:重復值的判斷與刪除
異常值處理:清除不必要的空格和極端、異常數據
相關操作:描述性統計、Apply、直方圖等
合並:符合各種邏輯關系的合並操作
分組:數據劃分、分別執行函數、數據重組
Reshaping:快速生成數據透視表
概率論及統計學知識
需要掌握的知識點如下:
基本統計量:均值、中位數、眾數、百分位數、極值等
其他描述性統計量:偏度、方差、標准差、顯著性等
其他統計知識:總體和樣本、參數和統計量、ErrorBar
概率分布與假設檢驗:各種分布、假設檢驗流程
其他概率論知識:條件概率、貝葉斯等
有了統計學的基本知識,你就可以用這些統計量做基本的分析了。你可以使用 Seaborn、matplotpb 等(python包)做一些可視化的分析,通過各種可視化統計圖,並得出具有指導意義的結果。
Python 數據分析
掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的數據進行回歸分析,並得出相對精確地結論。這部分需要掌握的知識點如下:
回歸分析:線性回歸、邏輯回歸
基本的分類演算法:決策樹、隨機森林……
基本的聚類演算法:k-means……
特徵工程基礎:如何用特徵選擇優化模型
調參方法:如何調節參數優化模型
Python 數據分析包:scipy、numpy、scikit-learn等
在數據分析的這個階段,重點了解回歸分析的方法,大多數的問題可以得以解決,利用描述性的統計分析和回歸分析,你完全可以得到一個不錯的分析結論。
當然,隨著你實踐量的增多,可能會遇到一些復雜的問題,你就可能需要去了解一些更高級的演算法:分類、聚類。
然後你會知道面對不同類型的問題的時候更適合用哪種演算法模型,對於模型的優化,你需要去了解如何通過特徵提取、參數調節來提升預測的精度。
你可以通過 Python 中的 scikit-learn 庫來實現數據分析、數據挖掘建模和分析的全過程。
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python怎麼做大數據分析的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
❹ Python 適合大數據量的處理嗎
python可以處理大數據,python處理大數據不一定是最優的選擇。適合大數據處理。而不是大數據量處理。 如果大數據量處理,需要採用並用結構,比如在hadoop上使用python,或者是自己做的分布式處理框架。
python的優勢不在於運行效率,而在於開發效率和高可維護性。針對特定的問題挑選合適的工具,本身也是一項技術能力。
Python處理數據的優勢(不是處理大數據):
1. 異常快捷的開發速度,代碼量巨少
2. 豐富的數據處理包,不管正則也好,html解析啦,xml解析啦,用起來非常方便
3. 內部類型使用成本巨低,不需要額外怎麼操作(java,c++用個map都很費勁)
4. 公司中,很大量的數據處理工作工作是不需要面對非常大的數據的
5. 巨大的數據不是語言所能解決的,需要處理數據的框架(hadoop, mpi)雖然小眾,但是python還是有處理大數據的框架的,或者一些框架也支持python。
(4)python大數據編輯擴展閱讀:
Python處理數據缺點:
Python處理大數據的劣勢:
1、python線程有gil,通俗說就是多線程的時候只能在一個核上跑,浪費了多核伺服器。在一種常見的場景下是要命的:並發單元之間有巨大的數據共享或者共用(例如大dict)。
多進程會導致內存吃緊,多線程則解決不了數據共享的問題,單獨的寫一個進程之間負責維護讀寫這個數據不僅效率不高而且麻煩
2、python執行效率不高,在處理大數據的時候,效率不高,這是真的,pypy(一個jit的python解釋器,可以理解成腳本語言加速執行的東西)能夠提高很大的速度,但是pypy不支持很多python經典的包,例如numpy。
3. 絕大部分的大公司,用java處理大數據不管是環境也好,積累也好,都會好很多。
參考資料來源:網路-Python
❺ python處理大數據的能力怎麼樣
有些辦法。比如使用array, numpy.array。 主要的思路是節約內存的使用,同時提高數據查詢的效率。
如果能夠注意這些內容,處理幾個GB的數據還是輕松的。 接下來就是分布式計算。 按maprece的思路。數據盡量在本地處理。所以演算法上要優化。主要是分段。
不管怎麼說。這幾個方面所有的語言都是相同的。即使你用的是C語言也一樣要考慮到這些。大數據因為量大,演算法也需要改進。
對於不能改進的演算法(好象還沒有遇到)也只好用python接C的擴展模塊了。 好在python與C有很好的介面。輕松就接上。
最近比較流行的方法是使用cython,一方面可以略略提高速度,另一方面與C有無縫的介面。
java在處理大數據方面速度與易用性略略占優勢。C++也經常會使用在核心演算法上。語言本身都不是問題。大部分時候大數據還是在處理演算法本身而不是語言。
在原型階段python很方便,快速,靈活。所以大數據處理中python是幾種語言中最適合的。特別是早期探索階段。業務與演算法經常變更。到了後期基本上都是C++了。java比較適合工程化階段。
❻ Python適合大數據量的處理嗎
python可以處理大數據,但是python處理大數據不一定是最優的選擇
公司中,很大量的數據處理工作工作是不需要面對非常大的數據的
❼ Python大數據, 一些簡單的操作
#coding:utf-8
#file: FileSplit.py
import os,os.path,time
def FileSplit(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
number = 100000 #每個小文件中保存100000條數據
dataLine = sFile.readline()
tempData = [] #緩存列表
fileNum = 1
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
for row in range(number):
tempData.append(dataLine) #將一行數據添加到列表中
dataLine = sFile.readline()
if not dataLine :
break
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tempData) #將列表保存到文件中
tFile.close()
tempData = [] #清空緩存列表
print(tFilename + " 創建於: " + str(time.ctime()))
fileNum += 1 #文件編號
sFile.close()
if __name__ == "__main__" :
FileSplit("access.log","access")
#coding:utf-8
#file: Map.py
import os,os.path,re
def Map(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
dataLine = sFile.readline()
tempData = {} #緩存列表
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
p_re = re.compile(r'(GET|POST)\s(.*?)\sHTTP/1.[01]',re.IGNORECASE) #用正則表達式解析數據
match = p_re.findall(dataLine)
if match:
visitUrl = match[0][1]
if visitUrl in tempData:
tempData[visitUrl] += 1
else:
tempData[visitUrl] = 1
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Map("access\\access.log1.txt","access")
Map("access\\access.log2.txt","access")
Map("access\\access.log3.txt","access")
#coding:utf-8
#file: Rece.py
import os,os.path,re
def Rece(sourceFolder, targetFile):
tempData = {} #緩存列表
p_re = re.compile(r'(.*?)(\d{1,}$)',re.IGNORECASE) #用正則表達式解析數據
for root,dirs,files in os.walk(sourceFolder):
for fil in files:
if fil.endswith('_map.txt'): #是rece文件
sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')
dataLine = sFile.readline()
while dataLine: #有數據
subdata = p_re.findall(dataLine) #用空格分割數據
#print(subdata[0][0]," ",subdata[0][1])
if subdata[0][0] in tempData:
tempData[subdata[0][0]] += int(subdata[0][1])
else:
tempData[subdata[0][0]] = int(subdata[0][1])
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Rece("access","access")
❽ Python可以做大數據嗎
Python是數據科學家十分喜愛的編程語言,其內置了很多由C語言編寫的庫,操作起來更加方便,Python在網路爬蟲的傳統應用領域,在大數據的抓取方面具有先天優勢,目前,最流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨當一面的Python類庫。
相關推薦:《Python基礎教程》
Python十分適合數據抓取工作,對於大數據的處理,具有一定的局限性:
Python在大數據處理方面的優勢:
1. 異常快捷的開發速度,代碼量少;
2. 豐富的數據處理包,使用十分方便;
3. 內部類型使用成本低;
4. 百萬級別數據可以採用Python處理。
Python在大數據處理方面的劣勢:
1. python線程有gil,多線程的時候只能在一個核上跑,浪費了多核伺服器;
2. python執行效率不高,在處理大數據的時候,效率不高;
3. 10億級別以上的數據Python效率低。
Python適合大數據的抓取、載入和分發,相比於其他語言更加簡單、高效;求一些常用的統計量和求一些基本演算法的結果,Python也有現成的高效的庫,但是針對大數據處理,Python具有一定的局限於,因此,涉及大數據處理時,可以用Python做整個流程的框架,核心CPU密集操作可以採用C語言等編程語言!
❾ python為什麼適合大數據
因為方便啊。
在大數據面前,用什麼語言開發,執行起來都需要很長時間,都是慢。
那麼,執行速度方面已經沒有意義了,寫起來舒服的好處就凸顯出來了。
試想一下,對於一個大數據任務,你用C寫的程序要跑兩個小時,別人用python寫的要跑四個小時,沒人會盯首屏幕兩個小時,所以一般都會晚上下班時開始跑,第二天早上來看結果。那麼,對於一個晚上的時間來說,兩個小時和四個小時,是沒有差別的,第二天早上你都一樣可以看到結果。
在這種情況下,python的方便靈活就比C的艱深晦澀有吸引力了。
❿ 如何使用python和R高效而優雅地處理大數據
1、從分類上,兩種語言各有優勢:
(1)python的優勢不在於運行效率,而在於開發效率和高可維護性。在數據的載入和分發,python是很高效的;如果是求一些常用的統計量和求一些基本演算法的結果,python也有現成的高效的庫;如果是純粹自己寫的演算法,沒有任何其他可借鑒的,什麼庫也用不上,用純python寫是自討苦吃。
(2)R 主要是統計學家為解決數據分析領域問題而開發的語言,R 語言的優勢則是在於:
統計學家和幾乎覆蓋整個統計領域的前沿演算法(3700+ 擴展包);開放的源代碼(free, in both senses),可以部署在任何操作系統,比如 Windows, Linux, Mac OS X, BSD, Unix強大的社區支持;高質量、廣泛的統計分析、數據挖掘平台;重復性的分析工作(Sweave = R + LATEX),藉助 R 語言的強大的分析能力 + LaTeX 完美的排版能力,可以自動生成分析報告;方便的擴展性,包括可通過相應介面連接資料庫,如 Oracle、DB2、MySQL、同 Python、Java、C、C++ 等語言進行互調,提供 API 介面均可以調用,比如 Google、Twitter、Weibo,其他統計軟體大部分均可調用 R,比如 SAS、SPSS、Statistica等,甚至一些比較直接的商業應用,比如 Oracle R Enterprise, IBM Netezza, R add-on for Teradata, SAP HANA, Sybase RAP。
2、關於如何優雅地處理,則是一項藝術家的工作,如果有看過TED演講的話,可以看到很多可視化的數據分析結果,這些都是非常cool的。
3、綜上所述,首先,要針對特定的問題分清楚問題的核心,和研究的方法;然後,挑選合適的工具,進行分析;最後,則是通過藝術家般的想像力,通過數據可視化表達清楚。