IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> phython 从表格中提取特定信息和以图形的方式呈现数据1 -> 正文阅读

[Python知识库]phython 从表格中提取特定信息和以图形的方式呈现数据1

phython 从表格中提取特定信息和以图形的方式呈现数据

为了更方便理解,因此我直接用一个例题和它的标准解法参杂着知识点来讲解
这些数据与肝病的诊断有关。从345名患者(345行)记录了7条不同的信息(7列)。我们将讨论345个样本,每个样本有7个特征。七列中的数据具有以下含义:,

平均红细胞体积;
碱性磷酸酶;
丙氨酸转氨酶;
天冬氨酸转氨酶;
γ-谷氨酰转肽酶;
每天饮用半品脱酒精饮料的数量;
类别标签(1=健康;2=患病)

前五项测量是血液测试的结果(我们不必担心它们的确切含义),第六项是关于患者的酒精消耗量。最后一列是“类标签”。本栏中的“1”表示患者健康,而“2”表示患者患有肝病。

import numpy as np
data = np.loadtxt(open("data/liver_data.txt", "rb"), delimiter=",")

np.loadtext命令将从文件liver\u data.txt加载所有逗号分隔的数字行,并将它们全部存储在一个名为data的矩阵变量中。(注意,变量’data’不需要声明或给定类型,也不需要分配内存。)

drinks = data[:, 5]

现在让我们更详细地了解其中一个特性。我们可以从矩阵M中提取 n n nth列,并使用Python numpy代码将其存储在向量 v v v中,例如v=M[:,n]
注意,特性6出现在第5列中,因为Python从0开始计数。

import matplotlib.pylab as plt

%matplotlib inline
plt.plot(drinks)

这将显示折线图
上面的’plt.plot’行以分号结尾。默认情况下,运行单元格时会打印单元格最后一行的返回值。分号禁止此输出,即分号是Jupyter笔记本的一项功能。Python不要求在每行代码末尾加分号。
执行上述单元格时,绘图应直接显示在单元格下方。它将沿 x x x轴(即,患者1至患者345)显示样本编号,并在 y y y轴上显示患者的酒精消耗量。这不是一种非常有用的查看数据的方式。

更适合使用直方图,即表示一组值分布的条形图。
要制作直方图,我们可以使用matplotlib的’hist’函数

plt.hist(drinks)

不幸的是,默认情况下直方图只有10条,这不足以精确显示数据。
“hist”函数有一个名为“bin”的参数,该参数采用一个向量,该向量指定每个直方图bin之间的边界位置。我们需要以0,1,2,…,20为中心的容器,因此需要在-0.5,0.5,1.5,…,20.5处指定边界。使用python的’linspace’命令最容易实现这一点,该命令在两个指定的限制之间生成一个等距值序列

plt.hist(drinks, bins=np.linspace(-0.5, 20.5, 22))

通过使用’xlim’函数更改轴的范围,可以使图形更清晰

plt.hist(drinks, bins=np.linspace(-0.5, 20.5, 22))
plt.xlim([-0.5, 20.5])
import numpy as np

data = np.loadtxt(open("data/liver_data.txt", "rb"), delimiter=",")
drinks = data[:, 5]
np.mean(drinks)

要计算平均酒精消耗量,请使用命令’np.mean(drinks)’。

在上一节中,我们研究了所有345人的酒精消费分布情况。我们现在想看看健康人和患病人的单独直方图。记住类标签在第7列中。我们可以让Python测试列中的条目是否匹配特定的数字,例如1

data[:, 6] == 1

注意它是==而不是=。
结果以1(真)和0(假)的向量返回。这一行代码有效地执行了345次比较,并一次性返回了345个结果。我们可以将这些结果存储在变量中

wellPeople = data[:, 6] == 1
wellDrinks = data[wellPeople, 5]

或者把它们放在一行

wellDrinks = data[data[:, 6] == 1, 5]

现在我们要比较这两类的直方图。我们可以使用’subplot’命令在同一窗口中放置两个绘图。

plt.subplot(2, 1, 1)
plt.hist(wellDrinks, bins=np.linspace(-0.5, 20.5, 22))
plt.xlim(-0.5, 20.5)
plt.subplot(2, 1, 2)
plt.hist(illDrinks, bins=np.linspace(-0.5, 20.5, 22))
plt.xlim(-0.5, 20.5)

您可能会发现,没有一个功能单独是非常有用的。如果我们使用更多的特性,这些类将更好地分离。当观察一维时,我们可以使用直方图可视化数据分布。当查看一对特征的分布时,通常最好使用散点图。使用散点图,将一对特征表示为二维平面上的一个点,即每个样本在平面上表示样本特征值的位置绘制。

wellFeatureX = data[data[:, 6] == 1, 3]
wellFeatureY = data[data[:, 6] == 1, 4]
plt.scatter(wellFeatureX, wellFeatureY)

加粗样式

illFeatureX = data[data[:, 6] == 2, 3]
illFeatureY = data[data[:, 6] == 2, 4]
plt.scatter(wellFeatureX, wellFeatureY)
plt.scatter(illFeatureX, illFeatureY)

现在的问题是,两组数据都是用同一个符号绘制的,所以我们看不到哪个是哪个。
要使用不同的符号和/或颜色,您可以为“散射”提供额外的参数。参数“c”可用于指定颜色,“marker”可用于指定标记样式,“s”是指定标记大小的整数。
下面的例子使用绿色十字架代表健康人,红色圆点代表患病人

plt.scatter(illFeatureX, illFeatureY, s=20, c="r", marker="o")
plt.scatter(wellFeatureX, wellFeatureY, s=20, c="g", marker="x")

这里是最基础的处理方式,如果遇到更复杂的情况,请去查看
phython 从表格中提取特定信息和以图形的方式呈现数据2

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 12:58:42  更:2021-10-29 13:00:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:26:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码