數據產品經理該懂的python技術
本文作者詳細介紹了python技術,一起來學習一下~
一、Python介紹
小奈:其實你們寫的代碼好像有不同派系的?
大仁:你是說編程語言?我來介紹下吧,我們來看下GitHub(程序員同城交友、代碼協作平臺)的數據,看下各種編程語言 Pull Requst的數據, Javascript的提交量最高,前端的鼎盛時期,python則處于飛速上升中,很有潛力。Java一直很穩,常年占據了后端主流編程語言第一。
二、Python熱度為何持續上漲?
python可以用來干什么呢?
- 后端開發語言,常見開發架構django;
- 數據分析,常用庫,pandas;
- 爬蟲,scrapy;
- 人工智能,tensorflow。
人工智能和數據分析,近年來需求持續攀升,這方面人才待遇也是水漲船高,既然python那么能干,熱度自然飛速上漲。
三、爬蟲
說到數據分析,我們不得不說下數據來源,一般是內部數據,也有外部數據,外部數據的獲取有很多種,最常見的方式就是爬蟲了。
爬蟲基于robots協議可以公開爬去網絡上的信息。
1.爬蟲工作原理
python中有成熟的爬蟲框架(scrapy、bs4),只要你給爬蟲一個網址,它就可以去爬取,和輸入url類似卻又不同,不同的是爬蟲會把這些html文件里有用的信息抓取回來,而且爬蟲可以爬取該網站相關的其它鏈接,像是daquan里的abc、123、456等。
小奈:爬取別人的信息會不會違法?
大仁:看你怎么爬取,其實有個爬蟲協議(robots),每個網站都可以聲明,其實就是聲明哪些文件可以、哪些不可以,下面以淘寶網的robots.txt為例:
User-agent: Baiduspider
Allow: /article
Allow: /oshtml
Disallow: /product/
Disallow: /
遵循robots協議后,爬取的數據不用于商用,基本上沒事,商用的話目前還是灰色地帶,混沌蠻荒階段。(拋磚引玉,求專業人士解答下)
2.淘寶對百度的屏蔽
當年還可以在百度里搜索到淘寶商品信息,后來淘寶決定對搜索引擎實施不同程度的屏蔽,那時候淘寶體量還沒那么大,屏蔽百度,會少了很多站外流量。
但是這個關鍵性的決定,讓用戶心智統一(淘寶里才可以搜索商品),后面現金流般的淘寶廣告就更不說了,站在當時,很考驗產品決策人。
3.搜索引擎
爬蟲似乎和搜索引擎密切相關,是的,是時候來科普下,搜索引擎的工作原理。
假如你在“JackSearch”這個搜索引擎里,輸入“產品經理”,那么當你點擊搜索時,服務器就會去數據庫查找,返回相關的文件信息,那么你就會問,這些文件是哪來的?
是爬蟲們去網頁世界里爬取的。
當然,搜索引擎遠比這個復雜,爬蟲抓取回來的信息,還需要存儲,建立索引,這個推薦一本書《Luence》。
4.數據產品經理(ex-developer)常用工具
在上古時代,Unix系統連界面都沒有,程序員都還是用vi來寫代碼的,就是密密麻麻黑乎乎的命令行狀態。到了今天,依然有部分極客只用命令行(terminal)來寫代碼,然后現在生活條件好了,大部分程序員都是用集成開發環境,這樣子可以提高效率,省下不少腦力。
5.PyCharm?(python的集成開發環境)
- 數據庫工具:navicat(for mysql)、robomngo(for mongodb)
- 后端開發工具:jetbian公司系列,webstorm(for JavaScript)、pycharm(for python)
- 代碼管理工具:sourcetree(for git)、svn
- 原型工具:axure、墨刀、etc
簡單介紹下pycharm,大概長這樣子,左邊是項目文件(1.py , 2.py),?主界面是文件代碼編寫窗口,底部是調試窗口。
6.爬蟲框架scrapy
Scrapy:Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的數據。Scrapy用途廣泛,可以用于數據挖掘、監測和自動化測試。
這里不得不說下,scrapy是分布式爬蟲框架,如何理解?上次也有介紹分布式,分布式就是假如100只爬蟲,今天的任務是爬取100本小說,那么如果一百臺機器,機器上各有一只,每只爬不同的一部小說,那就是分布式。
分布式爬蟲方便性能擴張,極大提高程序的抓取效率。
7.爬蟲實踐
- ?新建工程?scrapy startproject tutorial;
- ?創建爬蟲?scrapy genspider -t xxx.com;
- ?修改settings.py,在settings.py中修改DEFAULT_REQUEST_HEADERA和USER_AGENT;
- 定義item:DemoItem(scrapy.Item);name = scrapy.Field();title = scrapy.Field();link = scrapy.Field();info = scrapy.Field()
- 編寫spider爬蟲邏輯;
- 儲存到數據庫(mysql、mongodb、etc)。
8.不想寫爬蟲又想抓數據?
當然可以的,常見有八抓魚、火車頭之類。八爪魚有一些優勢,比如學習成本低,可視化流程,快速搭建采集系統;能直接導出excel文件和導出到數據庫中;降低采集成本,云采集提供10個節點,也能省事不少。
四、數據分析告訴你,天龍八部在講什么?
小奈:那python在數據分析工作中,如何發揮作用呢?
大仁:數據分析可以用python、r、第三方分析工具,都可以,但最主要還是結合業務,要有分析思路,這個就要求有業務經驗了,我舉個例子吧,我??葱≌f,就以天龍八部為例子吧。
“天龍八部”是哪八部?“天龍八部”都是“非人”,包括八種神道怪物,因為以“天”及“龍”為首,所以稱為“天龍八部”。
八部者,一天,二龍,三夜叉,四乾達婆,五阿修羅,六迦樓羅,七緊那羅,八摩呼羅迦。
看完介紹,還是不懂,沒關系,今天主要講的是,用數據分析天龍八部里高頻詞語、人物關系、(關系真的很復雜,電腦都跑的發燙,瑟瑟發抖)以及究竟在講啥?
1.自己?
看到下面的詞云,為什么“自己”這個詞,那么高頻?估計和寫作人稱有關,上帝視角?(有點不解,求天龍粉解答)
乍看之下,段譽詞頻(1551)最高,其實要結合“業務”,實則喬峰才是正主。要從喬峰的身世說起,開頭中,喬峰是丐幫幫主,后身世揭破,契丹人也,改名蕭峰。
所以喬峰的詞頻(1900+)=喬峰(963)+蕭峰(966)。
從詞語中,我們可以看出,寫作手法,喬峰(段譽)聽/笑/呆/動詞,所以人物+動詞。
2.人物關系圖
故事有好多條主線。
(1)尋仇:
其中虛竹和喬峰,為什么關系最親密?因為虛竹的爸是殺死喬峰的爸的帶頭大哥,尋仇是小說的主線之一。
(2)段正淳戀愛史:
從另一角度看,可以說是,大理鎮南王,段正淳戀愛史,他和幾位女人談戀愛,并生下的都全都是女兒,女兒再一個個和段譽談戀愛,搞得段譽很痛苦,最后發現自己不是親生的故事。
總結來說:故事是由“慕容博”和“段正淳”,兩位大Boss挑起的,各負責一條主線:
- 慕容博想光復燕國,才策劃殺死蕭家,企圖引起兩國戰亂,引起蕭父報仇;
- 鎮南王,則是負責拈花若草,一身情債,一個人很爽,搞得很多人很痛苦,最后自殺。
五、實戰
1.詞云
這里主要用到了兩個庫:jieba分詞用的,wordcloud詞云用,matplib顯示用。
- 下載小說txt文件;
- 準備一張mask(遮罩)圖片;
- 字體;
#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(‘./詞頻統計.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.人物關系圖
(1)統計詞頻
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)計算人物之間矩陣關系
(3)用gephi畫出人物關系
首先是導入關系圖,逗號、矩陣、utf-8;
然后就是箭頭,第一個是顯示節點信息,第二、三是調整連線的粗細、顏色;
點擊某個節點,例如段譽,可以側重顯示他的人物關系。
六、最后
數據分析產品經理,該具備什么素質?
最核心的當然是分析經驗/思路,但是基本的數據分析能力還是得有,最常見的就是Python或R,這里推薦下python吧,動手能力強的話可以做點其它的。
接下來會帶來,一些機器學習的東西,不知道大家有沒有興趣?
人工智能,比較有趣的一個方向,大家一起努力吧。
作者:Jack,新零售數據PM,公眾號:產品經理的技術課堂
本文由 @Jack 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 pexels,基于 CC0 協議
大家期待已久的《數據產品經理實戰訓練營》終于在起點學院(人人都是產品經理旗下教育機構)上線啦!
本課程非常適合新手數據產品經理,或者想要轉崗的產品經理、數據分析師、研發、產品運營等人群。
課程會從基礎概念,到核心技能,再通過典型數據分析平臺的實戰,幫助大家構建完整的知識體系,掌握數據產品經理的基本功。
學完后你會掌握怎么建指標體系、指標字典,如何設計數據埋點、保證數據質量,規劃大數據分析平臺等實際工作技能~
現在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優惠吧!
我是python小白,該怎么進行python的學習呢,麻煩詳細些。
哇,原來你還會Python啊
雕蟲小技,何足掛齒
這篇文章被百度百家、頭條號、各種抄襲,求平臺幫我維權,是照搬人人這邊的。
http://baijiahao.baidu.com/s?id=1601130309684586205
http://baijiahao.baidu.com/s?id=1598116956475318375
http://baijiahao.baidu.com/s?id=1598194605554142083
支持作者,文章一路追過來,能看出付出很多心血總結~~原創應該被尊重
感謝認可,最近差評 洗稿事件 抄襲這些 太多了 原創應該得到尊重
平臺幫你維權了嗎?怎么維權?
平臺沒有,維權騎士吧,不過百家號抄襲太猖獗了
支持維權