11.用户分析是电商数据分析中重要的模块,在对用户特征深度理解和用户需求充分挖掘基础上,进行全生命周期的运营管理(拉新—>活跃—>留存—>价值提升—>忠诚),请尝试回答以下3个问题:
① 用户第一单购买的行为往往反映了用户对平台的信任度和消费能力。现在数据库中有一张用户交易表order,其中有userid(用户ID)、amount(消费金额)、paytime(支付时间),请写出对应的SQL语句,查出每个用户第一单的消费金额。
② 当你发现本月的支付用户数环比上月大幅下跌(超30%),你会如何去探查背后的原因?请描述你的思路和其中涉及的关键指标
③ 为了更好的理解用户,我们通常会基于用户的特征对用户进行分类,便于更加精细化的理解用户,设计产品和运营玩法,请你设计对应的聚类方法,包括重点的用户特征的选择及聚类算法并说明其基本原理和步骤
select userid, amount
from order
order by paytime limit 1
或者是
select userid, amount
from (select userid, amount, min(paytime)
from order
group by userid
)
12.网易严选是网易旗下原创生活类自营电商品牌,深度贯彻“好的生活,没那么贵”的品牌理念。商品覆盖居家、餐厨、配件、服装、洗护、母婴、原生态饮食等几大类目,兼具品质和性价比,得到用户的广泛好评。若你是网易严选负责商品的数据分析师,当面对以下业务问题时,你会如何解决?
① 用户增长团队期望选择一批合适的商品用于吸引新客,期望你帮助从数据的角度筛选出一批合适的商品,你会如何帮助他们进行筛选?请描述你的思路。
② 商品研发负责人期望能有一套指标帮助衡量开发的商品表现,请你帮助设计对应的评估方案,包括设计思路、涉及的数据指标等。
(1)首先定位发展方向,是发展现有产品还是进行新产品的拓宽。可以通过用户调研,调查目前用户选择网易严选平台的原因,是因为专注于一个方向,还是因为性价比高,如果核心用户选择专注于一个方向,则更应该选择发展现有产品,否则可以考虑拓宽产品类型。
(2)确定方向后,确定具体产品,需要考虑用户的消费能力,选择品牌等。通过调研用户选择其他平台而不选择网易严选的原因,调查产品类别是否存在不足。确定产品类别后,还需考虑用户的消费能力,可根据消费者过往消费记录或调研将用户大致分为高水平消费者、中等水平消费者、低水平消费者三类,从而选择相应价位的产品
(3) 确定大致价格后,还需要调研什么产品对于消费者性价比高。
2.
(1)初期,可进行定性调查,考虑小范围用户体验的调研,KPI可以考虑用户一个月内使用次数等。chan从用户日常的使用过程中,衡量商品开发效果。例如,对于新买的家具,用户是否需要晾晒一段时间或者栽种盆栽来去除气味;针对同一款产品的不同颜色,用户是否具有偏好等。
(2)推广期,可进行定量调查,并和同类产品进行比较。
KPI: 该产品和同类产品一个月的浏览次数、点击次数、购买次数、各类评价的数量,以及衍生指标。购买率 = 购买次数/总浏览次数,点击率=点击次数/浏览次数,好评率=好评数量/评价数量,差评率=差评数量/总评价数量等。
该产品浏览次数较低,可能是因为推广度不够;浏览次数高,点击次数、点击率较低则说明该产品开发没有解决用户最急迫的需求,不能吸引用户;好评率低,则说明该产品存在问题等。
n,q=map(int,input().split())
num=list(map(int,input().split()))
list2=[]
for i in range(q):
x = int(input())
list2.append(x)
#print(list2)
#list2 是验证数 num是初始数
#print(type(num))
for i in range(q):
count=0
for j in range(n):
#print(num[j],list2[i])
if num[j]>=list2[i]:
num[j]-=1
count+=1
print(count)
14.小易学习了辗转相除法之后,就开始实践这个算法在求解最大公约数上。
牛牛给小易出了一道不同寻常的求解最大公约数: 求解a和b的最大公约数,但是a和b的范围特别大。
小易遇到了困难,向聪明的你寻求帮助,希望你能帮帮他。
我的答案:
思路:辗转相除法,两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数
#直到其中一个数为0
def fun(a,b):
x=max(a,b)
y=min(a,b)
if x%y == 0:
return y
else:
return fun(y,x%y)
a=int(input())
b=int(input())
#print(type(a)),没有int时,a的类型为字符串型
print(fun(a,b))
15.小易有一个初始为空的数字集合,支持两种操作:
1、加入数字x到集合中。
2、询问集合中是否存在一个子集,满足子集中所有数字的Or值恰好为k。
Or为二进制按位或操作,C++中表示为"|"。
小易希望你能解决这个问题。
我的答案:
list=[]
def fun(x,y):
if x == 1:
list.append(y)
else:
if y in list:
print('YES')
else:
print('NO')
q=int(input())
for i in range(q):
x,y=map(int,input().split())
#print(x)
#print(type(x))
fun(x,y)
16.小易给定了一个长度为n的数字序列,对于每一个,小易希望能求解出所有长度为k的连续子序列的最大值中的最小值。
我的答案:
思路:确定需要比较几个数-在确定比较组数
n=int(input())
num=list(map(int,input().split()))#转化为List
result=[]
for i in range(1,n+1):#确定几个数比较
max_list=[]
for j in range(n-i+1):#当有i个数比较时,比较的组数有n-i+1
#print(j)
max_list.append(max(num[j:j+i]))#确定比较的范围
result.append(min(max_list))#找到i位置最大值里的最小值
#print(result) 此时输出的result为list
print(' '.join(map(str,result)))#join只能连接字符串,''表示用空格连接