数据产品经理该懂的python技术
一、Python介紹
小奈:其實(shí)你們寫的代碼好像有不同派系的?
大仁:你是說(shuō)編程語(yǔ)言?我來(lái)介紹下吧,我們來(lái)看下GitHub(程序員同城交友、代碼協(xié)作平臺(tái))的數(shù)據(jù),看下各種編程語(yǔ)言 Pull Requst的數(shù)據(jù), Javascript的提交量最高,前端的鼎盛時(shí)期,python則處于飛速上升中,很有潛力。Java一直很穩(wěn),常年占據(jù)了后端主流編程語(yǔ)言第一。
二、Python熱度為何持續(xù)上漲?
python可以用來(lái)干什么呢?
- 后端開發(fā)語(yǔ)言,常見開發(fā)架構(gòu)django;
- 數(shù)據(jù)分析,常用庫(kù),pandas;
- 爬蟲,scrapy;
- 人工智能,tensorflow。
人工智能和數(shù)據(jù)分析,近年來(lái)需求持續(xù)攀升,這方面人才待遇也是水漲船高,既然python那么能干,熱度自然飛速上漲。
三、爬蟲
說(shuō)到數(shù)據(jù)分析,我們不得不說(shuō)下數(shù)據(jù)來(lái)源,一般是內(nèi)部數(shù)據(jù),也有外部數(shù)據(jù),外部數(shù)據(jù)的獲取有很多種,最常見的方式就是爬蟲了。
爬蟲基于robots協(xié)議可以公開爬去網(wǎng)絡(luò)上的信息。
1.爬蟲工作原理
python中有成熟的爬蟲框架(scrapy、bs4),只要你給爬蟲一個(gè)網(wǎng)址,它就可以去爬取,和輸入url類似卻又不同,不同的是爬蟲會(huì)把這些html文件里有用的信息抓取回來(lái),而且爬蟲可以爬取該網(wǎng)站相關(guān)的其它鏈接,像是daquan里的abc、123、456等。
小奈:爬取別人的信息會(huì)不會(huì)違法?
大仁:看你怎么爬取,其實(shí)有個(gè)爬蟲協(xié)議(robots),每個(gè)網(wǎng)站都可以聲明,其實(shí)就是聲明哪些文件可以、哪些不可以,下面以淘寶網(wǎng)的robots.txt為例:
User-agent: Baiduspider
Allow: /article
Allow: /oshtml
Disallow: /product/
Disallow: /
遵循robots協(xié)議后,爬取的數(shù)據(jù)不用于商用,基本上沒事,商用的話目前還是灰色地帶,混沌蠻荒階段。(拋磚引玉,求專業(yè)人士解答下)
2.淘寶對(duì)百度的屏蔽
當(dāng)年還可以在百度里搜索到淘寶商品信息,后來(lái)淘寶決定對(duì)搜索引擎實(shí)施不同程度的屏蔽,那時(shí)候淘寶體量還沒那么大,屏蔽百度,會(huì)少了很多站外流量。
但是這個(gè)關(guān)鍵性的決定,讓用戶心智統(tǒng)一(淘寶里才可以搜索商品),后面現(xiàn)金流般的淘寶廣告就更不說(shuō)了,站在當(dāng)時(shí),很考驗(yàn)產(chǎn)品決策人。
3.搜索引擎
爬蟲似乎和搜索引擎密切相關(guān),是的,是時(shí)候來(lái)科普下,搜索引擎的工作原理。
假如你在“JackSearch”這個(gè)搜索引擎里,輸入“產(chǎn)品經(jīng)理”,那么當(dāng)你點(diǎn)擊搜索時(shí),服務(wù)器就會(huì)去數(shù)據(jù)庫(kù)查找,返回相關(guān)的文件信息,那么你就會(huì)問(wèn),這些文件是哪來(lái)的?
是爬蟲們?nèi)ゾW(wǎng)頁(yè)世界里爬取的。
當(dāng)然,搜索引擎遠(yuǎn)比這個(gè)復(fù)雜,爬蟲抓取回來(lái)的信息,還需要存儲(chǔ),建立索引,這個(gè)推薦一本書《Luence》。
4.數(shù)據(jù)產(chǎn)品經(jīng)理(ex-developer)常用工具
在上古時(shí)代,Unix系統(tǒng)連界面都沒有,程序員都還是用vi來(lái)寫代碼的,就是密密麻麻黑乎乎的命令行狀態(tài)。到了今天,依然有部分極客只用命令行(terminal)來(lái)寫代碼,然后現(xiàn)在生活條件好了,大部分程序員都是用集成開發(fā)環(huán)境,這樣子可以提高效率,省下不少腦力。
5.PyCharm?(python的集成開發(fā)環(huán)境)
- 數(shù)據(jù)庫(kù)工具:navicat(for mysql)、robomngo(for mongodb)
- 后端開發(fā)工具:jetbian公司系列,webstorm(for JavaScript)、pycharm(for python)
- 代碼管理工具:sourcetree(for git)、svn
- 原型工具:axure、墨刀、etc
簡(jiǎn)單介紹下pycharm,大概長(zhǎng)這樣子,左邊是項(xiàng)目文件(1.py , 2.py),?主界面是文件代碼編寫窗口,底部是調(diào)試窗口。
6.爬蟲框架scrapy
Scrapy:Python開發(fā)的一個(gè)快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。
這里不得不說(shuō)下,scrapy是分布式爬蟲框架,如何理解?上次也有介紹分布式,分布式就是假如100只爬蟲,今天的任務(wù)是爬取100本小說(shuō),那么如果一百臺(tái)機(jī)器,機(jī)器上各有一只,每只爬不同的一部小說(shuō),那就是分布式。
分布式爬蟲方便性能擴(kuò)張,極大提高程序的抓取效率。
7.爬蟲實(shí)踐
8.不想寫爬蟲又想抓數(shù)據(jù)?
當(dāng)然可以的,常見有八抓魚、火車頭之類。八爪魚有一些優(yōu)勢(shì),比如學(xué)習(xí)成本低,可視化流程,快速搭建采集系統(tǒng);能直接導(dǎo)出excel文件和導(dǎo)出到數(shù)據(jù)庫(kù)中;降低采集成本,云采集提供10個(gè)節(jié)點(diǎn),也能省事不少。
四、數(shù)據(jù)分析告訴你,天龍八部在講什么?
小奈:那python在數(shù)據(jù)分析工作中,如何發(fā)揮作用呢?
大仁:數(shù)據(jù)分析可以用python、r、第三方分析工具,都可以,但最主要還是結(jié)合業(yè)務(wù),要有分析思路,這個(gè)就要求有業(yè)務(wù)經(jīng)驗(yàn)了,我舉個(gè)例子吧,我常看小說(shuō),就以天龍八部為例子吧。
“天龍八部”是哪八部?“天龍八部”都是“非人”,包括八種神道怪物,因?yàn)橐浴疤臁奔啊褒垺睘槭?#xff0c;所以稱為“天龍八部”。
八部者,一天,二龍,三夜叉,四乾達(dá)婆,五阿修羅,六迦樓羅,七緊那羅,八摩呼羅迦。
看完介紹,還是不懂,沒關(guān)系,今天主要講的是,用數(shù)據(jù)分析天龍八部里高頻詞語(yǔ)、人物關(guān)系、(關(guān)系真的很復(fù)雜,電腦都跑的發(fā)燙,瑟瑟發(fā)抖)以及究竟在講啥?
1.自己?
看到下面的詞云,為什么“自己”這個(gè)詞,那么高頻?估計(jì)和寫作人稱有關(guān),上帝視角?(有點(diǎn)不解,求天龍粉解答)
乍看之下,段譽(yù)詞頻(1551)最高,其實(shí)要結(jié)合“業(yè)務(wù)”,實(shí)則喬峰才是正主。要從喬峰的身世說(shuō)起,開頭中,喬峰是丐幫幫主,后身世揭破,契丹人也,改名蕭峰。
所以喬峰的詞頻(1900+)=喬峰(963)+蕭峰(966)。
從詞語(yǔ)中,我們可以看出,寫作手法,喬峰(段譽(yù))聽/笑/呆/動(dòng)詞,所以人物+動(dòng)詞。
2.人物關(guān)系圖
故事有好多條主線。
(1)尋仇:
其中虛竹和喬峰,為什么關(guān)系最親密?因?yàn)樘撝竦陌质菤⑺绬谭宓陌值膸ь^大哥,尋仇是小說(shuō)的主線之一。
(2)段正淳戀愛史:
從另一角度看,可以說(shuō)是,大理鎮(zhèn)南王,段正淳戀愛史,他和幾位女人談戀愛,并生下的都全都是女兒,女兒再一個(gè)個(gè)和段譽(yù)談戀愛,搞得段譽(yù)很痛苦,最后發(fā)現(xiàn)自己不是親生的故事。
總結(jié)來(lái)說(shuō):故事是由“慕容博”和“段正淳”,兩位大Boss挑起的,各負(fù)責(zé)一條主線:
五、實(shí)戰(zhàn)
1.詞云
這里主要用到了兩個(gè)庫(kù):jieba分詞用的,wordcloud詞云用,matplib顯示用。
#coding:utf-8
from os import path
from collections import Counter
import jieba
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
if __name__==’__main__’:
#讀取文件
d = path.dirname(__file__)
pardir = path.dirname(d)
pardir2 = path.dirname(pardir)
cyqf = path.join(pardir2,’tlbbqf/’)
text = open(path.join(d,’tlbb.txt’), encoding=”utf-8″, errors=”surrogateescape”).read()
jieba_word = jieba.cut(text, cut_all=False) #cut_all 分詞模式
data = []
for word in jieba_word:
data.append(word)
dataDict = Counter(data)
with open(‘./詞頻統(tǒng)計(jì).csv’, ‘w’, encoding=’utf-8′) as fw:
for k,v in dataDict.items():
fw.write(“%s,%d\n” % (k,v))
mask = np.array(Image.open(path.join(d, “mask.png”)))
font_path=path.join(d,”font.ttf”)
stopwords = set(STOPWORDS)
wc = WordCloud(background_color=”white”,
max_words=2000,
mask=mask,
stopwords=stopwords,
font_path=font_path)
# 生成詞云
wc.generate(text)
# 生成的詞云圖像保存到本地
wc.to_file(path.join(d, “wordcloud.png”))
# 顯示圖像
plt.imshow(wc, interpolation=’bilinear’)
plt.axis(“off”)
plt.show()
2.人物關(guān)系圖
(1)統(tǒng)計(jì)詞頻
text = open(path.join(d,'tlbb.txt'), encoding="utf-8", errors="surrogateescape").read()jieba_word = jieba.cut(text, cut_all=False) #cut_all 分詞模式data = []for word in jieba_word:data.append(word)dataDict = Counter(data)(2)計(jì)算人物之間矩陣關(guān)系
(3)用gephi畫出人物關(guān)系
首先是導(dǎo)入關(guān)系圖,逗號(hào)、矩陣、utf-8;
然后就是箭頭,第一個(gè)是顯示節(jié)點(diǎn)信息,第二、三是調(diào)整連線的粗細(xì)、顏色;
點(diǎn)擊某個(gè)節(jié)點(diǎn),例如段譽(yù),可以側(cè)重顯示他的人物關(guān)系。
六、最后
數(shù)據(jù)分析產(chǎn)品經(jīng)理,該具備什么素質(zhì)?
最核心的當(dāng)然是分析經(jīng)驗(yàn)/思路,但是基本的數(shù)據(jù)分析能力還是得有,最常見的就是Python或R,這里推薦下python吧,動(dòng)手能力強(qiáng)的話可以做點(diǎn)其它的。
接下來(lái)會(huì)帶來(lái),一些機(jī)器學(xué)習(xí)的東西,不知道大家有沒有興趣?
人工智能,比較有趣的一個(gè)方向,大家一起努力吧。
總結(jié)
以上是生活随笔為你收集整理的数据产品经理该懂的python技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 苹果笔记本有uefi启动吗_如何更换Wi
- 下一篇: Python 中的 sequence 类