数据产品经理该懂的python技术

Jack
10 评论 24566 浏览 255 收藏 15 分钟
🔗 B端产品需要更多地依赖销售团队和渠道合作来推广产品,而C端产品需要更多地利用网络营销和口碑传播来推广产品..

本文作者详细介绍了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、第三方分析工具,都可以,但最主要还是结合业务,要有分析思路,这个就要求有业务经验了,我举个例子吧,我常看小说,就以天龙八部为例子吧。

“天龙八部”是哪八部?“天龙八部”都是“非人”,包括八种神道怪物,因为以“天”及“龙”为首,所以称为“天龙八部”。
八部者,一天,二龙,三夜叉,四乾达婆,五阿修罗,六迦楼罗,七紧那罗,八摩呼罗迦。

看完介绍,还是不懂,没关系,今天主要讲的是,用数据分析天龙八部里高频词语、人物关系、(关系真的很复杂,电脑都跑的发烫,瑟瑟发抖)以及究竟在讲啥?

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. 支持维权

      来自广东 回复
专题
70253人已学习13篇文章
什么是产品的商业模式,不同类型的产品在商业模式上有什么区别?
专题
17409人已学习13篇文章
当下人脸识别在生活中被应用得愈加广泛。本专题的文章分享了人脸识别的入门指南。
专题
14496人已学习13篇文章
本文作者总结了那些踩过的坑,为大家详细的罗列出了规范的产品管理流程及规范。
专题
50199人已学习25篇文章
在产品初期,有什么方法能获取及维护高质量的种子用户呢?
专题
18037人已学习15篇文章
语音交互是基于语音输入的新一代交互模式,通过说话就可以得到反馈结果。本专题的文章分享了语音交互的入门指南。
专题
14391人已学习13篇文章
在产品的运营过程中,无论是产品、运营还是市场团队,都希望能清晰地了解用户的行为路径,通过用户行为分析,优化用户体验,实现更精准的运营和营销。