欢迎来到编程资源网!

Python面试

当前位置:主页 > 面试宝典 > Python面试 >

数据分析面试题

时间:2019-03-16|栏目:Python面试|点击:

1.一家超市的顾客数据,将数据可视化并分析销售额和年龄、收入的关系并给出营销建议
年龄 收入 销售额
34 350 123
40 450 114
37 169 135
30 189 139
44 183 117
36 80 121
32 166 133
26 120 140
32 75 133
36 40 133
答案:
 
import matplotlib.pyplot as plt
# 年龄
age = [34,40,37,30,44,36,32,26,32,36]
# 收入
income = [350,450,169,189,183,80,166,120,75,40]
# 销售额
sales = [123,114,135,139,117,121,133,140,133,133]
# 年龄,销售额 散点图
plt.scatter(age,sales)
plt.show()
1
2
3
4
5
6
7
8
9
10
 
 
 # 收入,销售额 散点图
plt.scatter(income,sales)
1
2
<matplotlib.collections.PathCollection at 0x7e87550>
1
 
 
可视化结论:
 
顾客年龄和销售额负相关,年龄越大销售额越低
顾客收入和销售额也呈负相关,收入越高销售额越低
建议:
 
营销针对人群应是一般收入100-200之间,年龄20-37之间的人群,这样营销效果更好
2.使用原生Python代码和Numpy并行计算分别求解下面的y值
x1 = [1,2,3,4,5]
 
x2 = [3,5,2,9,10]
 
y = x12 + x23
 
求y值:原生Python实现
 
x1 = [1,2,3,4,5]
x2 = [3,5,2,9,10]
y = []
for i in range(len(x1)):
    y.append(x1[i]**22 + x2[i]**33)
print(y)
1
2
3
4
5
6
[5559060566555524, 116415321826934818647429, 39970994201, 30903154382632612379512827847945, 1000000000000000002384185791015625]
1
Numpy实现
 
import numpy as np
x1 = np.array([1,2,3,4,5])
x2 = np.array([3,5,2,9,10])
y = x1 ** 22 + x2 ** 33
print(y)
1
2
3
4
5
[-1504003196 -1667191419  1316288537  1165272329 -2094601527]
1
3.返回下表中所有同学语文成绩最低的1次考试成绩
chinese english math name test
75 69 36 张三
68 85 87 李四
54 42 59 王五
55 57 63 李四
59 35 92 王五
45 63 92 王五
61 53 76 赵六
import pandas as pd
df = pd.read_csv('data/1.class.csv', encoding='gbk')
df
1
2
3
chinese english math name test
0 75 69 36 张三
1 68 85 87 李四
2 54 42 59 王五
3 55 57 63 李四
4 59 35 92 王五
5 45 63 92 王五
6 61 53 76 赵六
#自定义函数
def top(x,n=1,column='chinese'):
        return x.sort_values(by=column)[:1]
df.groupby('name').apply(top)
1
2
3
4
chinese english math name test
name
张三 0 75 69 36 张三
李四 3 55 57 63 李四
王五 5 45 63 92 王五
赵六 6 61 53 76 赵六
4.创建三角级数类,阅读下列代码回答问题
import numpy as np
import matplotlib.pyplot as plt
class trigonometric_function:
    tra_1 = 6
    tra_2 = 12
    def __init__(self,a,k,l):
        self.const1 = a
        self.const2 = k
        self.const3 = l
    def Additive_term(self,x):
        self.summand_s = np.sin(self.const2*x + self.tra_1)
        self.summand_c = np.cos(self.const3*x + self.tra_2)
    def trigon_sum(self,m,n):
        sum_1 = sum([sum([self.const1*(self.summand_s**i)*(self.summand_c**j) for i in range(m)]) for j in range(n)])
        return sum_1
    def draw_pic(self,data):
        fig,axes_1 = plt.subplots(1,1,dpi=140,figsize=(6,4))
        axes_1.plot(x,data)
        plt.show()
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a.请在代码中找出类变量、实例变量、方法、对象
类变量:tra1,tra2,const1,const2,const3,summand_s,summand_c
 
实例变量:x,a,k,l,m,n,data(通常前面没有self.。)
 
方法(属性): Additive_term、trigon_sum、draw_pic
 
对象:方法、类变量和实例变量
 
b.请写出程序中所涉及到的三角级数
c.self 什么意思?
self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
 
d.请阐述下列代码运行后会有什么结果
f1=trigonometric_function(3,4,6)
#类的实例化
#对类进行初始化
x=np.linspace(-5,5,500)
#生成500个-5到5之间的点
f1.Additive_term(x)
#生成普通三角函数sin和cos
data=f1.trigon_sum(4,5)
#生成三角级数数据
f1.draw_pic(data)
#绘图
1
2
3
4
5
6
7
8
9
10
11
 
 
5.Python数据分析通常使用的环境、工具和库都有哪些?库功能是什么?
基础环境一般为Anaconda,
 
编辑器多用Ipython或JupyterNotebook,
 
常用库有:
 
Numpy:数值计算
Matplotlib:数据可视化
Pandas:数据预处理和数据分析
scikit-learn:机器学习算法建模预测
6.数据分析的一般流程是什么
基本流程
 
提出问题(明确分析目的)
准备数据
分析数据
洞察结论
详细流程
 
需求层
目标确定
数据层
数据获取
数据规整(清洗)
分析层
描述性分析
指标计算
数据可视化
探索性分析
建模分析
模型验证
迭代优化
输出层
数据分析报告
总结结论
提出建议并实施
7.常用的数据分析方法有哪些?
现状分析
对比分析:
定义:对比两个或以上数据,发现并分析差异,最终从中得出数据差异所代表的含义和规律。
目的:通过比较某个或某些指标,直观的发现事物在某方面的差异与变化,且差异和变化可被准确量化。
分类:横向比较和纵向比较
平均
通过计算平均数来反映总体在一定时间、地点条件下某一数量特征的一般水平。但由于其忽略了个体间可能存在的巨大差异,有时候并不一定反映出某一指标的一般水平。因此,很多时候平均分析法是不可取的。
综合评定
人们通过实践总结,逐步形成了一系列运用多个指标对多个参评单位进行评价的方法,称之为综合评价法。
综合评价法的本质是把多指标转化为一个能够反映综合情况的量(比如评分,通常不再是统计指标)来进行分析
……
 
原因分析
分组:
定义:根据数据特征,按照一定的指标,把数据划分为不同的群组进行研究,以求揭示各群组间的内在联系和规律。
目的:通常为了对比,按照一定指标把总体中不同性质的个体区分开,把性质相同的个体合并在一起,保证组内个体属性差别最小,组与组之间属性差异最大。
结构
定义:被分析总体内的各部分与总体进行对比的分析方法,即部分数量除以总体数量,换句话说,部分占总体的比例,属于相对指标
交叉
交叉分析法又称立体分析法,是在纵向分析法和横向分析法的基础上,从交叉、立体的角度出发,由浅入深、由低级到高级的一种分析方法。这种方法虽然复杂,但它弥补了“各自为政”分析方法所带来的偏差。
交叉分析可通过交叉分析表来实现:透视表和交叉表
杜邦分析
金字塔结构层层分析法,各层存在明确的因果关系,更多时候是严格的函数关系
漏斗图
漏斗图适用于业务流程比较规范、周期长、环节多的流程分析,通过漏斗各环节业务数据的比较,能够直观地发现和说明问题所在。在网站分析中,通常用于转化率比较,它不仅能展示用户从进入网站到实现购买的最终转化率,还可以展示每个步骤的转化率。
聚类
……
预测分析
回归
判别式分析
神经网络
决策树
8.数据分析中常见的统计学概念有哪些?
相对数与绝对数:
绝对数描述客观事物总体在一定时间和地点条件下的总规模,总水平的指标。
相对数是指两个相关事物的比值。
百分数和百分点:
男生占班级总人数的90%,男生人数比上一年增长7个百分点,百分数表示个体占总体的程度。百分点表示相同事物不同时期的增幅。
频数频率:
频数是绝对数,频率是相对数。
频数指某种事物或现象在其所在总体出里出现的次数。比如班级有两个女生,我们就可以说女生出现的频数是2.
频率(注:不要和物理频率搞混),个体出现的总次数与总体出现的总次数的比值。
比例和比率:
比例指个体数值在总体数值中的占比。比如一个班级10个人,男生4个,女生6个,则男生的所占比例是4 :10;女生所占比例是6 :10。
比率是总体中各个体数值之间的对比。男女比率是:4 :6
倍数与番数:
倍数是一个数除以另一个数所得的商。比如3是1.5的二倍。
番数指的是某种事物总数的二的n次方倍
同比与环比:
同比是指与历史同时期进行比较得到的数值;环比是指与前一个统计期比较所得到的数值。
这个产品的销售额与上一年相比,同比增长40%;
这个商品的销售额与上个月相比,环比增长30%。
9.归一化
归一化方法:
 
归一化作用:
 
作用1:消除量纲,在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。
作用2:提升模型的收敛速度,狭长的标量场经过标准化后变得比较圆,这样会大大提升计算的收敛速度。
10.常见数据分析方法论
PEST:是研究宏观环境对企业或团体影响的一种分析方法(典型案例:海外投资)
PEST来自四个英文单词的首字母。这四个因为单词分别是Political Economic Social Technological,四者是组成宏观环境的基本要素。当然它们仅仅基本要素,真正的宏观环境要复杂得多。所以说在实际操作中,往往根据行业和企业的自身特点以及经营需求在此四者基础之上进行适当改变。
5W2H:
来源于7个用来提问英文单词的第一个字母,这7个英文单词分别为why、what、who、when、where、how、how much,用这7个单词进行提问,然后回答提问,在回答中发现解决问题的方法。
逻辑树分析法:
对一个主问题提出几个小问题,然后对每个小问题又可以提出几个问题,依次类推,层层推进,逐渐形成树状结构。
4P营销理论:
由4类因素共同影响销售业务,这四类因素分别为:产品、价格、渠道、促销
客户行为理论:
用户行为主要说的是用户使用行为,就是用户为获取、使用物品或服务所采取的一系列行动,这些行动可总结性地分为:认知、熟悉、试用、使用、忠诚。该理论主要用于网站分析。
11.什么叫数据分析?
数据分析是指的是通过统计学方法对采集来的数据进行整理分析,从中提取有用信息并最终得出结论的过程。
 
某些学者认为,数据分析分为三类,入门级的描述性数据分析,其方法主要有对比、平均、交叉分析法。高级的探索、和验证数据分析,分析方法有主要有相关分析,回归分析,因子分析。这样的提法有它自己的道理。在我看来,实际上就两类:描述性统计分析和计算性数据分析。
--------------------- 
作者:科展好好 
来源:CSDN 
原文:https://blog.csdn.net/u011164680/article/details/85001587 
版权声明:本文为博主原创文章,转载请附上博文链接!

程序员资源社区

公众号回复:面试,领取Python,Java面试题和简历

上一篇:python数据分析师面试题选

栏    目:Python面试

下一篇:没有了

本文标题:数据分析面试题

本文地址:http://www.python66.cn/mianshi/python/398.html

广告投放 | 文章投稿 | 版权申明

重要申明:本站所有的文章、图片、软件等仅用作学习交流

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:476430956 | 邮箱:476430956@qq.com

Copyright © 2019-2029 编程教程网 版权所有 Power by DeDe58