Numpy练习2

  • 练习题
    • 利用Numpy处理csv文档的数据
    • 利用Numpy分析数据+Matplotlib画图
  • 利用Numpy处理csv文档的数据
    • 代码
    • 部分原数据
    • 效果图
  • 利用Numpy分析数据+Matplotlib画图
    • 代码
    • 练习二效果图
  • 小结

练习题

利用Numpy处理csv文档的数据

利用Numpy分析数据+Matplotlib画图

利用Numpy处理csv文档的数据

代码

import numpy as np
# Question 1: 读取scores.csv的数据 并且
score_data = np.loadtxt("scores.csv", delimiter=",", skiprows=1)
# 由于成绩是一列一列的 然后有两个column 分别是 期中 和 期末
# 分别将两列成绩取出
arr_midterm = score_data[:, 0]  # 期中
arr_final = score_data[:, 1]  # 期末
# 接下来利用布尔索引完成下列任务
# 筛选出 成绩 大于60 并且 小于80 的数据
arr1_midterm = arr_midterm[(arr_midterm > 60) & (arr_midterm < 80)].astype("uint8")
arr1_final = arr_final[(arr_final > 60) & (arr_final < 80)].astype("uint8")
# 筛选出 成绩 大于80 并且 小于90 的数据
arr2_midterm = arr_midterm[(arr_midterm > 80) & (arr_midterm < 90)].astype("uint8")
arr2_final = arr_final[(arr_final > 80) & (arr_final < 90)].astype("uint8")
# 筛选出 成绩 大于90 的数据
arr3_midterm = arr_midterm[arr_midterm > 90].astype("uint8")
arr3_final = arr_final[arr_final > 90].astype("uint8")
# 输出成绩
print("期中考试大于60并且小于80的分数: ", arr1_midterm)
print("期末考试大于60并且小于80的分数:", arr1_final)
print("期中考试大于60并且小于80的分数:", arr2_midterm)
print("期末考试大于60并且小于80的分数:", arr2_final)
print("期中考试大于90的分数: ", arr3_midterm)
print("期末考试大于90的分数: ", arr3_final)

部分原数据

效果图

利用Numpy分析数据+Matplotlib画图

代码

# Question 2: UK和USA的YouTube数据分析, 每列对应的是:点击,喜欢,不喜欢,评论
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties# 处理中文字体的问题
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)UK_youtube_data = np.loadtxt("GB_video_data_numbers.csv", delimiter=",", skiprows=1, dtype="uint8")
USA_youtube_data = np.loadtxt("US_video_data_numbers.csv", delimiter=",", skiprows=1, dtype="uint8")
# 英国的数据
UK_click = UK_youtube_data[:, 0]  # 点击
UK_like = UK_youtube_data[:, 1]  # 喜欢
UK_dislike = UK_youtube_data[:, 2]  # 不喜欢
UK_comment = UK_youtube_data[:, 3]  # 评论
# 美国的数据
USA_click = USA_youtube_data[:, 0]  # 点击
USA_like = USA_youtube_data[:, 1]  # 喜欢
USA_dislike = USA_youtube_data[:, 2]  # 不喜欢
USA_comment = USA_youtube_data[:, 3]  # 评论# 1. 结合Matplotlib绘制各自的评论数量的图形,体现其 评论数 主要分布在哪个区间。
# 此题利用直方图
# 求极差
range_number = max(max(UK_comment), max(USA_comment)) - min(min(UK_comment), min(USA_comment))
# 自定义组距(经验公式 K = 1 + lg(n)/lg2)
b = 11
# 求得组数
bins = int(round(range_number)/b)
# 绘制直方图
plt.hist([UK_comment, USA_comment], bins, label=["UK", "USA"])
# 添加x轴和y轴标签
plt.xlabel("评论数", fontproperties=font)
plt.ylabel("频数", fontproperties=font)
# 添加图例
plt.legend(loc="upper right", prop=font)
# 添加标题
plt.title("YouTube的评论数直方分布图", fontproperties=font)
# 显示图形
plt.show()# 2. 绘制图形,分析英国的Youtube中视频的评论数与喜欢数的关系。
# 此题也可以使用直方图
# 求极差
range_number = max(max(UK_comment), max(UK_like)) - min(min(UK_comment), min(USA_like))
# 自定义组距(经验公式 K = 1 + lg(n)/lg2)
b = 11
# 求得组数
bins = int(round(range_number)/b)
# 绘制直方图
plt.hist([UK_comment, UK_like], bins, label=["评论数", "喜欢数"])
# 添加y轴标签
plt.ylabel("频数", fontproperties=font)
# 添加图例
plt.legend(loc="upper right", prop=font)
# 添加标题
plt.title("英国YouTube上评论数和喜欢数的直方分布图", fontproperties=font)
plt.show()# 3. 当希望将两个国家的数据拼接一起来研究分析。
# • 拼接全为0的数组标识为英国
print("拼接0之后,英国的数据:")
UK_zeros = np.zeros((len(UK_comment), 1), dtype="uint8")
arr_zero_UK = np.hstack((UK_youtube_data, UK_zeros))  # 水平拼接
print(arr_zero_UK)
print()
# • 拼接全为1的数组标识为美国
print("拼接1之后,美国的数据:")
USA_ones = np.ones((len(USA_comment), 1), dtype="uint8")
arr_one_USA = np.hstack((USA_youtube_data, USA_ones))  # 水平拼接
print(arr_one_USA)
print()
# • 将两个国家的数据拼接
print("英国和美国垂直拼接后的数据: ")
arr_UK_USA = np.vstack((arr_zero_UK, arr_one_USA))
print(arr_UK_USA)

练习二效果图

小结

  1. 从csv文件里面提取数据时,需要注意文件的格式、分隔符、数据的类型以及排序方式。
  2. 第二个画图题最好使用散点图。
  3. 需要注意水平拼接和垂直拼接的前提条件。

利用Numpy提取+处理数据相关推荐

  1. 利用ArcGIS提取MODIS数据的像元坐标

    MODIS数据简介 MODIS数据目前已经提供多种数据,以terra卫星的反射率产品MOD09GA(2018年217天h15v01)为例,该产品的数据是HDF4格式,它将许多有用的数据集整合到一起,当 ...

  2. 图片播放器的实现1——利用Image2LCD提取图片数据并显示

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2) ...

  3. 利用Python提取函数图像数据并拟合曲线

    目录 1. 前言 2. 数据提取 2.1 图像预处理 2.2 提取数据 3. 曲线拟合 4. 优化代码 1. 前言 学校导师要求拟合曲线,但只有函数图像没有数据,图像和公式都不懂就负责把系数算出来. ...

  4. python处理nc数据_python中的.nc文件处理 | 04 利用矢量边界提取NC数据

    利用矢量边界提取.nc数据 import os import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...

  5. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

  6. Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal

    Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal 目录 输出结果 代码设计 输出结果 代码设计 ...

  7. 利用正则表达式提取网页中Table内的数据

    利用正则表达式提取网页中Table内的数据 using System; using System.Collections.Generic; using System.Linq; using Syste ...

  8. python怎么筛选excel数据_python筛选数据excel表格-如何利用python提取两个excel对比后的重复值的信息?...

    怎么用python读取excel表格的数据 import xlrd #open the .xls file xlsname="test.xls" book = xlrd.open_ ...

  9. matlab如何取对数坐标,利用Matlab提取图片中曲线数据(线性修正,支持对数坐标)

    利用Matlab提取图片中曲线数据 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水平放置 ...

最新文章

  1. 杀掉某个进程的 Shell
  2. freeRtos学习笔记 (6)软件定时器
  3. AMBA、AHB、APB、AXI总线
  4. PHP常用工具函数之手机号相关
  5. html5 clip,canvas中使用clip()函数裁剪方法
  6. Kali-linux使用Nessus
  7. 社交系统ThinkSNS可以运营什么?可以应用于什么场景?
  8. 《操作系统》——第一章 计算机系统概述
  9. HDU-2203-亲和串(kmp)
  10. 工业互联网方案商“全应科技”获明势领投Pre-A轮融资
  11. Windows XP sp3上可以安装SQL Server 2008企业版?
  12. JAVA实现Word转Pdf文件
  13. JavaScript学习笔记
  14. 如何绘制一幅优雅的列线图
  15. 无人驾驶汽车激光雷达用胶的三大要求
  16. 三分钟部署Laxcus大数据管理系统
  17. MySQL适合运行在Docker中吗?
  18. 浅拷贝copy(“=”)和深拷贝(“copy.deepcopy()”)
  19. usb万能驱动win7_win 10 重装 win 7 系统
  20. Apache----web服务器软件

热门文章

  1. aws rds 加密_AWS RDS SQL Server中的加密备份和还原
  2. python爬虫案例-乌托家家具公司数据爬取
  3. 第四篇 做一个用户登录之后查看学员信息的小例子
  4. 2018.3.12 Leecode习题 给定一个整数数列,找出其中和为特定值的那两个数。
  5. wait 和 sleep 区别
  6. Android中CursorLoader的使用、原理及注意事项
  7. 找换硬币问题 与 0-1背包问题区别
  8. Struts2 标签库讲解
  9. easyui datagrid中添加右键菜单事件
  10. In Depth和In Action的区别——写在《深入理解C#(第二版)》出版之际