數據產品經理該懂的python技術

10 評論 24436 瀏覽 255 收藏 15 分鐘

本文作者詳細介紹了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.爬蟲實踐

  1. ?新建工程?scrapy startproject tutorial;
  2. ?創建爬蟲?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. 編寫spider爬蟲邏輯;
  6. 儲存到數據庫(mysql、mongodb、etc)。

8.不想寫爬蟲又想抓數據?

當然可以的,常見有八抓魚、火車頭之類。八爪魚有一些優勢,比如學習成本低,可視化流程,快速搭建采集系統;能直接導出excel文件和導出到數據庫中;降低采集成本,云采集提供10個節點,也能省事不少。

四、數據分析告訴你,天龍八部在講什么?

小奈:那python在數據分析工作中,如何發揮作用呢?

大仁:數據分析可以用python、r、第三方分析工具,都可以,但最主要還是結合業務,要有分析思路,這個就要求有業務經驗了,我舉個例子吧,我??葱≌f,就以天龍八部為例子吧。

“天龍八部”是哪八部?“天龍八部”都是“非人”,包括八種神道怪物,因為以“天”及“龍”為首,所以稱為“天龍八部”。
八部者,一天,二龍,三夜叉,四乾達婆,五阿修羅,六迦樓羅,七緊那羅,八摩呼羅迦。

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

1.自己?

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

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

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

從詞語中,我們可以看出,寫作手法,喬峰(段譽)聽/笑/呆/動詞,所以人物+動詞。

2.人物關系圖

故事有好多條主線。

(1)尋仇:

其中虛竹和喬峰,為什么關系最親密?因為虛竹的爸是殺死喬峰的爸的帶頭大哥,尋仇是小說的主線之一。

(2)段正淳戀愛史:

從另一角度看,可以說是,大理鎮南王,段正淳戀愛史,他和幾位女人談戀愛,并生下的都全都是女兒,女兒再一個個和段譽談戀愛,搞得段譽很痛苦,最后發現自己不是親生的故事。

總結來說:故事是由“慕容博”和“段正淳”,兩位大Boss挑起的,各負責一條主線:

  1. 慕容博想光復燕國,才策劃殺死蕭家,企圖引起兩國戰亂,引起蕭父報仇;
  2. 鎮南王,則是負責拈花若草,一身情債,一個人很爽,搞得很多人很痛苦,最后自殺。

五、實戰

1.詞云

這里主要用到了兩個庫:jieba分詞用的,wordcloud詞云用,matplib顯示用。

  1. 下載小說txt文件;
  2. 準備一張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(‘./詞頻統計.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 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 大家期待已久的《數據產品經理實戰訓練營》終于在起點學院(人人都是產品經理旗下教育機構)上線啦!

    本課程非常適合新手數據產品經理,或者想要轉崗的產品經理、數據分析師、研發、產品運營等人群。

    課程會從基礎概念,到核心技能,再通過典型數據分析平臺的實戰,幫助大家構建完整的知識體系,掌握數據產品經理的基本功。

    學完后你會掌握怎么建指標體系、指標字典,如何設計數據埋點、保證數據質量,規劃大數據分析平臺等實際工作技能~

    現在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優惠吧!

    來自廣東 回復
  2. 我是python小白,該怎么進行python的學習呢,麻煩詳細些。

    來自安徽 回復
  3. 哇,原來你還會Python啊

    來自廣東 回復
    1. 雕蟲小技,何足掛齒

      來自廣東 回復
  4. 這篇文章被百度百家、頭條號、各種抄襲,求平臺幫我維權,是照搬人人這邊的。

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

    來自廣東 回復
    1. 支持作者,文章一路追過來,能看出付出很多心血總結~~原創應該被尊重

      來自北京 回復
    2. 感謝認可,最近差評 洗稿事件 抄襲這些 太多了 原創應該得到尊重

      來自廣東 回復
    3. 平臺幫你維權了嗎?怎么維權?

      來自北京 回復
    4. 平臺沒有,維權騎士吧,不過百家號抄襲太猖獗了

      來自廣東 回復
    5. 支持維權

      來自廣東 回復