數(shù)據(jù)產(chǎn)品經(jīng)理該懂的python技術(shù)

10 評(píng)論 24449 瀏覽 255 收藏 15 分鐘

本文作者詳細(xì)介紹了python技術(shù),一起來(lái)學(xué)習(xí)一下~

一、Python介紹

小奈:其實(shí)你們寫(xiě)的代碼好像有不同派系的?

大仁:你是說(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)干什么呢?

  • 后端開(kāi)發(fā)語(yǔ)言,常見(jiàn)開(kāi)發(fā)架構(gòu)django;
  • 數(shù)據(jù)分析,常用庫(kù),pandas;
  • 爬蟲(chóng),scrapy;
  • 人工智能,tensorflow。

人工智能和數(shù)據(jù)分析,近年來(lái)需求持續(xù)攀升,這方面人才待遇也是水漲船高,既然python那么能干,熱度自然飛速上漲。

三、爬蟲(chóng)

說(shuō)到數(shù)據(jù)分析,我們不得不說(shuō)下數(shù)據(jù)來(lái)源,一般是內(nèi)部數(shù)據(jù),也有外部數(shù)據(jù),外部數(shù)據(jù)的獲取有很多種,最常見(jiàn)的方式就是爬蟲(chóng)了。

爬蟲(chóng)基于robots協(xié)議可以公開(kāi)爬去網(wǎng)絡(luò)上的信息。

1.爬蟲(chóng)工作原理

python中有成熟的爬蟲(chóng)框架(scrapy、bs4),只要你給爬蟲(chóng)一個(gè)網(wǎng)址,它就可以去爬取,和輸入url類似卻又不同,不同的是爬蟲(chóng)會(huì)把這些html文件里有用的信息抓取回來(lái),而且爬蟲(chóng)可以爬取該網(wǎng)站相關(guān)的其它鏈接,像是daquan里的abc、123、456等。

小奈:爬取別人的信息會(huì)不會(huì)違法?

大仁:看你怎么爬取,其實(shí)有個(gè)爬蟲(chóng)協(xié)議(robots),每個(gè)網(wǎng)站都可以聲明,其實(shí)就是聲明哪些文件可以、哪些不可以,下面以淘寶網(wǎng)的robots.txt為例:

User-agent: Baiduspider

Allow: /article

Allow: /oshtml

Disallow: /product/

Disallow: /

遵循robots協(xié)議后,爬取的數(shù)據(jù)不用于商用,基本上沒(méi)事,商用的話目前還是灰色地帶,混沌蠻荒階段。(拋磚引玉,求專業(yè)人士解答下)

2.淘寶對(duì)百度的屏蔽

當(dāng)年還可以在百度里搜索到淘寶商品信息,后來(lái)淘寶決定對(duì)搜索引擎實(shí)施不同程度的屏蔽,那時(shí)候淘寶體量還沒(méi)那么大,屏蔽百度,會(huì)少了很多站外流量。

但是這個(gè)關(guān)鍵性的決定,讓用戶心智統(tǒng)一(淘寶里才可以搜索商品),后面現(xiàn)金流般的淘寶廣告就更不說(shuō)了,站在當(dāng)時(shí),很考驗(yàn)產(chǎn)品決策人。

3.搜索引擎

爬蟲(chóng)似乎和搜索引擎密切相關(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)的?
是爬蟲(chóng)們?nèi)ゾW(wǎng)頁(yè)世界里爬取的。

當(dāng)然,搜索引擎遠(yuǎn)比這個(gè)復(fù)雜,爬蟲(chóng)抓取回來(lái)的信息,還需要存儲(chǔ),建立索引,這個(gè)推薦一本書(shū)《Luence》。

4.數(shù)據(jù)產(chǎn)品經(jīng)理(ex-developer)常用工具

在上古時(shí)代,Unix系統(tǒng)連界面都沒(méi)有,程序員都還是用vi來(lái)寫(xiě)代碼的,就是密密麻麻黑乎乎的命令行狀態(tài)。到了今天,依然有部分極客只用命令行(terminal)來(lái)寫(xiě)代碼,然后現(xiàn)在生活條件好了,大部分程序員都是用集成開(kāi)發(fā)環(huán)境,這樣子可以提高效率,省下不少腦力。

5.PyCharm?(python的集成開(kāi)發(fā)環(huán)境)

  • 數(shù)據(jù)庫(kù)工具:navicat(for mysql)、robomngo(for mongodb)
  • 后端開(kāi)發(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),?主界面是文件代碼編寫(xiě)窗口,底部是調(diào)試窗口。

6.爬蟲(chóng)框架scrapy

Scrapy:Python開(kāi)發(fā)的一個(gè)快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。

這里不得不說(shuō)下,scrapy是分布式爬蟲(chóng)框架,如何理解?上次也有介紹分布式,分布式就是假如100只爬蟲(chóng),今天的任務(wù)是爬取100本小說(shuō),那么如果一百臺(tái)機(jī)器,機(jī)器上各有一只,每只爬不同的一部小說(shuō),那就是分布式。

分布式爬蟲(chóng)方便性能擴(kuò)張,極大提高程序的抓取效率。

7.爬蟲(chóng)實(shí)踐

  1. ?新建工程?scrapy startproject tutorial;
  2. ?創(chuàng)建爬蟲(chóng)?scrapy genspider -t xxx.com;
  3. ?修改settings.py,在settings.py中修改DEFAULT_REQUEST_HEADERA和USER_AGENT;
  4. 定義item:DemoItem(scrapy.Item);name = scrapy.Field();title = scrapy.Field();link = scrapy.Field();info = scrapy.Field()
  5. 編寫(xiě)spider爬蟲(chóng)邏輯;
  6. 儲(chǔ)存到數(shù)據(jù)庫(kù)(mysql、mongodb、etc)。

8.不想寫(xiě)爬蟲(chóng)又想抓數(shù)據(jù)?

當(dāng)然可以的,常見(jiàn)有八抓魚(yú)、火車頭之類。八爪魚(yú)有一些優(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è)例子吧,我??葱≌f(shuō),就以天龍八部為例子吧。

“天龍八部”是哪八部?“天龍八部”都是“非人”,包括八種神道怪物,因?yàn)橐浴疤臁奔啊褒垺睘槭?,所以稱為“天龍八部”。
八部者,一天,二龍,三夜叉,四乾達(dá)婆,五阿修羅,六迦樓羅,七緊那羅,八摩呼羅迦。

看完介紹,還是不懂,沒(méi)關(guān)系,今天主要講的是,用數(shù)據(jù)分析天龍八部里高頻詞語(yǔ)、人物關(guān)系、(關(guān)系真的很復(fù)雜,電腦都跑的發(fā)燙,瑟瑟發(fā)抖)以及究竟在講啥?

1.自己?

看到下面的詞云,為什么“自己”這個(gè)詞,那么高頻?估計(jì)和寫(xiě)作人稱有關(guān),上帝視角?(有點(diǎn)不解,求天龍粉解答)

乍看之下,段譽(yù)詞頻(1551)最高,其實(shí)要結(jié)合“業(yè)務(wù)”,實(shí)則喬峰才是正主。要從喬峰的身世說(shuō)起,開(kāi)頭中,喬峰是丐幫幫主,后身世揭破,契丹人也,改名蕭峰。

所以喬峰的詞頻(1900+)=喬峰(963)+蕭峰(966)。

從詞語(yǔ)中,我們可以看出,寫(xiě)作手法,喬峰(段譽(yù))聽(tīng)/笑/呆/動(dòng)詞,所以人物+動(dòng)詞。

2.人物關(guān)系圖

故事有好多條主線。

(1)尋仇:

其中虛竹和喬峰,為什么關(guān)系最親密?因?yàn)樘撝竦陌质菤⑺绬谭宓陌值膸ь^大哥,尋仇是小說(shuō)的主線之一。

(2)段正淳戀愛(ài)史:

從另一角度看,可以說(shuō)是,大理鎮(zhèn)南王,段正淳戀愛(ài)史,他和幾位女人談戀愛(ài),并生下的都全都是女兒,女兒再一個(gè)個(gè)和段譽(yù)談戀愛(ài),搞得段譽(yù)很痛苦,最后發(fā)現(xiàn)自己不是親生的故事。

總結(jié)來(lái)說(shuō):故事是由“慕容博”和“段正淳”,兩位大Boss挑起的,各負(fù)責(zé)一條主線:

  1. 慕容博想光復(fù)燕國(guó),才策劃殺死蕭家,企圖引起兩國(guó)戰(zhàn)亂,引起蕭父報(bào)仇;
  2. 鎮(zhèn)南王,則是負(fù)責(zé)拈花若草,一身情債,一個(gè)人很爽,搞得很多人很痛苦,最后自殺。

五、實(shí)戰(zhàn)

1.詞云

這里主要用到了兩個(gè)庫(kù):jieba分詞用的,wordcloud詞云用,matplib顯示用。

  1. 下載小說(shuō)txt文件;
  2. 準(zhǔn)備一張mask(遮罩)圖片;
  3. 字體;

#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畫(huà)出人物關(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ù)分析能力還是得有,最常見(jiàn)的就是Python或R,這里推薦下python吧,動(dòng)手能力強(qiáng)的話可以做點(diǎn)其它的。

接下來(lái)會(huì)帶來(lái),一些機(jī)器學(xué)習(xí)的東西,不知道大家有沒(méi)有興趣?

人工智能,比較有趣的一個(gè)方向,大家一起努力吧。

 

作者:Jack,新零售數(shù)據(jù)PM,公眾號(hào):產(chǎn)品經(jīng)理的技術(shù)課堂

本文由 @Jack 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自 pexels,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 大家期待已久的《數(shù)據(jù)產(chǎn)品經(jīng)理實(shí)戰(zhàn)訓(xùn)練營(yíng)》終于在起點(diǎn)學(xué)院(人人都是產(chǎn)品經(jīng)理旗下教育機(jī)構(gòu))上線啦!

    本課程非常適合新手?jǐn)?shù)據(jù)產(chǎn)品經(jīng)理,或者想要轉(zhuǎn)崗的產(chǎn)品經(jīng)理、數(shù)據(jù)分析師、研發(fā)、產(chǎn)品運(yùn)營(yíng)等人群。

    課程會(huì)從基礎(chǔ)概念,到核心技能,再通過(guò)典型數(shù)據(jù)分析平臺(tái)的實(shí)戰(zhàn),幫助大家構(gòu)建完整的知識(shí)體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。

    學(xué)完后你會(huì)掌握怎么建指標(biāo)體系、指標(biāo)字典,如何設(shè)計(jì)數(shù)據(jù)埋點(diǎn)、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺(tái)等實(shí)際工作技能~

    現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領(lǐng)取福利優(yōu)惠吧!

    來(lái)自廣東 回復(fù)
  2. 我是python小白,該怎么進(jìn)行python的學(xué)習(xí)呢,麻煩詳細(xì)些。

    來(lái)自安徽 回復(fù)
  3. 哇,原來(lái)你還會(huì)Python啊

    來(lái)自廣東 回復(fù)
    1. 雕蟲(chóng)小技,何足掛齒

      來(lái)自廣東 回復(fù)
  4. 這篇文章被百度百家、頭條號(hào)、各種抄襲,求平臺(tái)幫我維權(quán),是照搬人人這邊的。

    http://baijiahao.baidu.com/s?id=1601130309684586205
    http://baijiahao.baidu.com/s?id=1598116956475318375
    http://baijiahao.baidu.com/s?id=1598194605554142083

    來(lái)自廣東 回復(fù)
    1. 支持作者,文章一路追過(guò)來(lái),能看出付出很多心血總結(jié)~~原創(chuàng)應(yīng)該被尊重

      來(lái)自北京 回復(fù)
    2. 感謝認(rèn)可,最近差評(píng) 洗稿事件 抄襲這些 太多了 原創(chuàng)應(yīng)該得到尊重

      來(lái)自廣東 回復(fù)
    3. 平臺(tái)幫你維權(quán)了嗎?怎么維權(quán)?

      來(lái)自北京 回復(fù)
    4. 平臺(tái)沒(méi)有,維權(quán)騎士吧,不過(guò)百家號(hào)抄襲太猖獗了

      來(lái)自廣東 回復(fù)
    5. 支持維權(quán)

      來(lái)自廣東 回復(fù)