数据分析 | Numpy实战(三) - 分析各类用户占比

bb

本次复习的知识点如下:

  • numpy的reshape以及shape在实战中的运用

  • matplotlib饼图绘制

分析目标

观察上次的数据,数据中有的数据有会员与非会员两种用户类别。
这次我们主要分析一下两种类别用户在数据中占比。

数据读取与数据清洗

根据流程示意图我们主要遵循下面几个步骤:

bb

在过去两次的文章中已经有关于数据读取和数据分析操作的详细代码讲解,所以不再赘述。

此处代码为:

# 数据读取,数据清洗
def read_clean_data():
    clndata_arr_list = []
    for data_filename in data_filenames:
        file = os.path.join(data_path, data_filename)
        data_arr = np.loadtxt(file, skiprows=1, delimiter=',', dtype=bytes).astype(str)
        cln_arr = np.core.defchararray.replace(data_arr[:, -1], '"''')
        cln_arr = cln_arr.reshape(-1,1)
        clndata_arr_list.append(cln_arr)
    year_cln_arr = np.concatenate(clndata_arr_list)
    return year_cln_arr

这里需要注意两点:

  • 因为数据较大,我们没有数据文件具体数据量,所以在使用numpy.reshape时我们可以使用numpy.reshape(-1,1)这样numpy可以使用统计后的具体数值替换-1

  • 我们对数据的需求不再是获取时间的平均值,只需获取数据最后一列并使用concatenate方法堆叠到一起以便下一步处理。

数据分析

根据这次的分析目标,我们取出最后一列Member type

在上一步我们已经获取了全部的数值,在本部只需筛选统计出会员与非会员的数值就可以了。

我们可以先看下完成后的这部分代码:

# 数据分析
def mean_data(year_cln_arr):
    member = year_cln_arr[year_cln_arr == 'Member'].shape[0]
    casual = year_cln_arr[year_cln_arr == 'Casual'].shape[0]
    users = [member,casual]
    print(users)
    return users

同样,这里使用numpy.shape获取用户分类的具体数据。

结果展示

生成的饼图:

bb

下面是生成饼图的代码:

# 结果展示
plt.figure()
    plt.pie(users, labels=['Member''Casual'], autopct='%.2f%%', shadow=True, explode=(0.050))
    plt.axis('equal')
    plt.tight_layout()
    plt.savefig(os.path.join(output_path, './piechart.png'))
    plt.show()
总结

关于之前文章中numpy的大部分用法在这三篇的实战中都有提及,接下来还剩一篇numpy实战总结全文,之后会进入pandas的复习

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556785/viewspace-2564293/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31556785/viewspace-2564293/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值