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

简介: 数据分析 | Numpy实战(三) - 分析各类用户占比
+关注继续查看

image

本次复习的知识点如下:

  • numpy的reshape以及shape在实战中的运用
  • matplotlib饼图绘制

分析目标

观察上次的数据,数据中有的数据有会员与非会员两种用户类别。

这次我们主要分析一下两种类别用户在数据中占比。

数据读取与数据清洗

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

image图 | 源自网络

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

此处代码为:

# 数据读取,数据清洗
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获取用户分类的具体数据。

结果展示

生成的饼图:

image

下面是生成饼图的代码:

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

总结

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

相关文章
|
1月前
|
数据可视化 数据挖掘 Python
python pandas 宝可梦数据分析可视化实战 课程设计 完整代码+数据 可直接运行
python pandas 宝可梦数据分析可视化实战 课程设计 完整代码+数据 可直接运行
25 0
|
1月前
|
数据挖掘 Python
python之电脑信息数据分析实战基于 词云 柱状图 饼图 实验报告 代码+数据
python之电脑信息数据分析实战基于 词云 柱状图 饼图 实验报告 代码+数据
13 0
|
1月前
|
数据采集 JSON JavaScript
网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析
网络爬虫是一种程序或脚本,用于自动从网页中提取数据。网络爬虫的应用场景非常广泛,例如搜索引擎、数据挖掘、舆情分析等。本文将介绍如何使用JavaScript和Axios这两个工具,实现一个网络爬虫的实战项目,即从Reddit这个社交媒体平台上爬取视频,并进行数据分析。本文的目的是帮助读者了解网络爬虫的基本原理和步骤,以及如何使用代理IP技术,避免被目标网站封禁。
网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析
|
2月前
|
数据采集 存储 数据挖掘
Python 爬虫实战之爬拼多多商品并做数据分析
在上面的代码中,我们使用pandas库创建DataFrame存储商品数据,并计算平均价格和平均销量。最后,我们将计算结果打印出来。此外,我们还可以使用pandas库提供的其他函数和方法来进行更复杂的数据分析和处理。 需要注意的是,爬取拼多多商品数据需要遵守拼多多的使用协议和规定,避免过度请求和滥用数据。
|
3月前
|
SQL 数据挖掘 Python
Python实战项目——旅游数据分析(四)
Python实战项目——旅游数据分析(四)
|
3月前
|
数据采集 数据可视化 搜索推荐
Python实战项目——用户消费行为数据分析(三)
Python实战项目——用户消费行为数据分析(三)
|
3月前
|
数据采集 数据可视化 数据挖掘
Python实战项目——物流行业数据分析(二)
Python实战项目——物流行业数据分析(二)
|
3月前
|
数据采集 存储 数据可视化
Python实战项目——餐厅订单数据分析(一)
Python实战项目——餐厅订单数据分析(一)
|
4月前
|
自然语言处理 算法 数据挖掘
|
4月前
|
JSON 数据挖掘 数据格式
推荐文章
更多