python数据分析师需要掌握什么技能?

Python011

python数据分析师需要掌握什么技能?,第1张

首先是基础篇

1、首先是Excel,貌似这个很简单,其实未必。Excel不仅能够做简单二维表、复杂嵌套表,能画折线图/Column chart/Bar chart/Area chart/饼图/雷达图/Combo char/散点图/Win Loss图等,而且能实现更高级的功能,包括透视表(类似于BI的多维分析模型Cube),以及Vlookup等复杂函数,处理100万条以内的数据没有大问题。最后,很多更高级的工具都有Excel插件,例如一些AI Machine Learning的开发工具。

2. SQL(数据库)

我们都知道数据分析师每天都会处理海量的数据,这些数据来源于数据库,那么怎么从数据库取数据?如何建立两表、三表之间的关系?怎么取到自己想要的特定的数据?等等这些数据选择问题就是你首要考虑的问题,而这些问题都是通过SQL解决的,所以SQL是数据分析的最基础的技能。

3. 统计学基础

数据分析的前提要对数据有感知,数据如何收集?数据整体分布是怎样的?如果有时间维度的话随着时间的变化是怎样的?数据的平均值是什么?数据的最大值最小值指什么?数据相关与回归、时间序列分析和预测等等。

4、掌握可视化工具,比如BI,如Cognos/Tableau/FineBI等,具体看企业用什么工具,像我之前用的是FineBI。这些工具做可视化非常方便,特别是分析报告能含这些图,一定会吸引高层领导的眼球,一目了然了解,洞察业务的本质。另外,作为专业的分析师,用多维分析模型Cube能够方便地自定义报表,效率大大提升。

进阶阶段需要掌握的:

1、系统的学好统计学

纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升20%,你把你的两个预测股票上涨还是下跌的model套在新浪的例子上,然后给你的上司看。统计学就是这样的作用。

数据挖掘相关的统计方法(多元Logistic回归分析、非线性回归分析、判别分析等)

定量方法(时间轴分析、概率模型、优化)

决策分析(多目的决策分析、决策树、影响图、敏感性分析)

树立竞争优势的分析(通过项目和成功案例学习基本的分析理念)

数据库入门(数据模型、数据库设计)

预测分析(时间轴分析、主成分分析、非参数回归、统计流程控制)

数据管理(ETL(Extract、Transform、Load)、数据治理、管理责任、元数据)

优化与启发(整数计划法、非线性计划法、局部探索法、超启发(模拟退火、遗传算法))

大数据分析(非结构化数据概念的学习、MapReduce技术、大数据分析方法)

数据挖掘(聚类(k-means法、分割法)、关联性规则、因子分析、存活时间分析)

其他,以下任选两门(社交网络、文本分析、Web分析、财务分析、服务业中的分析、能源、健康医疗、供应链管理、综合营销沟通中的概率模型)

风险分析与运营分析的计算机模拟

软件层面的分析学(组织层面的分析课题、IT与业务用户、变革管理、数据课题、结果的展现与传达方法)

2、掌握AI Machine Learning算法,会用工具(比如Python/R)进行建模。

传统的BI分析能回答过去发生了什么?现在正在发生什么?但对于未来会发生什么?必须靠算法。虽然像Tableau、FineBI等自助式BI已经内置了一部分分析模型,但是分析师想要更全面更深度的探索,需要像Python/R的数据挖掘工具。另外大数据之间隐藏的关系,靠传统工具人工分析是不可能做到的,这时候交由算法去实现,无疑会有更多的惊喜。

其中,面向统计分析的开源编程语言及其运行环境“R”备受瞩目。R的强项不仅在于其包含了丰富的统计分析库,而且具备将结果进行可视化的高品质图表生成功能,并可以通过简单的命令来运行。此外,它还具备称为CRAN(The Comprehensive R Archive Network)的包扩展机制,通过导入扩展包就可以使用标准状态下所不支持的函数和数据集。R语言虽然功能强大,但是学习曲线较为陡峭,个人建议从python入手,拥有丰富的statistical libraries,NumPy ,SciPy.org ,Python Data Analysis Library,matplotlib: python plotting。

以上我的回答希望对你有所帮助

你可以安装python的第三方应用 chartdirector, 如下面用python代码生成多个曲线的png图形,并可以自定义layout.

#!/usr/bin/python

from pychartdir import *

# The data for the line chart

data0 = [42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34, 51, 56, 56, 60, 70,

    76, 63, 67, 75, 64, 51]

data1 = [50, 55, 47, 34, 42, 49, 63, 62, 73, 59, 56, 50, 64, 60, 67, 67, 58, 59, 73,

    77, 84, 82, 80, 84, 98]

data2 = [36, 28, 25, 33, 38, 20, 22, 30, 25, 33, 30, 24, 28, 15, 21, 26, 46, 42, 48,

    45, 43, 52, 64, 60, 70]

# The labels for the line chart

labels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",

    "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"]

# Create an XYChart object of size 600 x 300 pixels, with a light blue (EEEEFF)

# background, black border, 1 pxiel 3D border effect and rounded corners

c = XYChart(600, 300, 0xeeeeff, 0x000000, 1)

c.setRoundedFrame()

# Set the plotarea at (55, 58) and of size 520 x 195 pixels, with white background.

# Turn on both horizontal and vertical grid lines with light grey color (0xcccccc)

c.setPlotArea(55, 58, 520, 195, 0xffffff, -1, -1, 0xcccccc, 0xcccccc)

# Add a legend box at (50, 30) (top of the chart) with horizontal layout. Use 9 pts

# Arial Bold font. Set the background and border color to Transparent.

c.addLegend(50, 30, 0, "arialbd.ttf", 9).setBackground(Transparent)

# Add a title box to the chart using 15 pts Times Bold Italic font, on a light blue

# (CCCCFF) background with glass effect. white (0xffffff) on a dark red (0x800000)

# background, with a 1 pixel 3D border.

c.addTitle("Application Server Throughput", "timesbi.ttf", 15).setBackground(

    0xccccff, 0x000000, glassEffect())

# Add a title to the y axis

c.yAxis().setTitle("MBytes per hour")

# Set the labels on the x axis.

c.xAxis().setLabels(labels)

# Display 1 out of 3 labels on the x-axis.

c.xAxis().setLabelStep(3)

# Add a title to the x axis

c.xAxis().setTitle("Jun 12, 2006")

# Add a line layer to the chart

layer = c.addLineLayer2()

# Set the default line width to 2 pixels

layer.setLineWidth(2)

# Add the three data sets to the line layer. For demo purpose, we use a dash line

# color for the last line

layer.addDataSet(data0, 0xff0000, "Server #1")

layer.addDataSet(data1, 0x008800, "Server #2")

layer.addDataSet(data2, c.dashLineColor(0x3333ff, DashLine), "Server #3")

# Output the chart

c.makeChart("multiline.png")

应该说Python/Perl是相互替代的脚本语言,但个人推荐用Python, 虽然很多老的生物信息软件是用Perl,Python学习曲线好,功能也更强大,是发展趋势。这两个语言主要是做数据预处理、文本处理和格式转换、对算法效率要求不高的分析软件开发,系统管理和pipeline搭建等工作。R语言主要的优势是大量的统计包的支持,数据统计分析中非常常用。Python和R有良好的接口。关于绘图很多人用R,其实Python的Matplotlib的绘图效果比它漂亮很多,也更强大。对pipeline的搭建shell编程更适合,是一个不可缺少的技能。与数据库相关的工作需要用到SQL, Linux : 操作系统,是基础。 生物信息对Linux的要求其实并不高,并不是要做系统开发者或管理员,只需要会用就行。复制粘贴、处理数据、安装软件等。生物信息软件:标准数据分析。 生物信息学的数据格式已经基本标准化,大部分工作可以直接用软件完成。Perl和Python:处理个性化问题、软件之间的对接。 这两门语言至少应该熟练掌握一门自己写程序用,另外一门要能看得懂。 写点小脚本感觉差别不大,但是perl写大程序不合适。 很多人认为python是趋势,但至少截止目前更多生信软件是用perl写的。 所以,如果刚开始学,建议主打python, 看懂perl。R :数据处理、统计、绘图、数据分析。 R语言的数据结构跟其他语言差异较大、而且总感觉语法比较散,不好记。但是R的软件包却异常强大。数据处理的reshape2, dplyr;绘图的ggplot2;还有Bioconductor里的几千个包。不得不会。