专业编程基础技术教程

网站首页 > 基础教程 正文

Numpy第22练:8个常用的统计函数,助你窥探数组的轮廓!

ccvgpt 2024-10-12 13:29:09 基础教程 7 ℃

第21次练习中我们学习了Numpy读取文件中的一些坑,特别是数据类型对读取文件结果的影响,我们的第22次练习是基于第21次练习来的,在此次练习中,我们将一一介绍Numpy中常用的统计性函数,掌握了这些函数之后我们离Pandas其实就越来越近了!

文件读取又一坑

首先我们先看一下要操作的数据长什么样子:

Numpy第22练:8个常用的统计函数,助你窥探数组的轮廓!

因为Numpy是专门做数值计算的,所以我们这次只读取其内容是数值类型的列,比如前 3 列,然后基于这三列来进行统计函数的演练!在读取之前我先向大家提出一个问题:如果我只读取前三列,Numpy会给我们生成一个几维数组?我们先放一张在不同参数下的读取结果的截图:

genfromtxt在读取文件时时,数据类型(dtype)参数扮演了关键角色。这是因为 numpy 需要知道如何将文件中的文本数据转换成适当的数字格式,这直接影响了数组的形状和维度。

  1. 未指定数据类型(dtype): 当你不指定 genfromtxt 函数的 dtype 参数时,默认情况下,numpy 会尝试推断数据中的每个字段的类型。如果文件中只包含单列数据,或者 numpy 无法将行内不同数据识别为多种类型,则 genfromtxt 可能会生成一维数组。这是因为整个文件被视为具有单一数据类型的单个大列。
  2. 指定数据类型(dtype): 当你明确指定 dtype 参数时,你告诉 numpy 预期的确切数据格式。如果你指定一个复合数据类型(例如包含多种类型的元组),或者明确地列出多种数据类型(比如使用结构化数组的格式),genfromtxt 会将每行数据解析为具有多个元素的记录。这导致生成二维数组,其中每行代表文件中的一行,每列对应于不同的数据字段。

因此,差异主要在于 numpy 如何解释数据和你告诉它期望找到的数据结构。未指定 dtype 让 numpy 自行推断,可能导致它将整个文件视为单一类型的数据序列。而指定 dtype 使 numpy 按照给定的结构解析每行数据,从而可能形成更复杂的二维数组结构。

那我们如果要总结一下的话,那就明读取文件时尽量数据型要明确,尽量要读取的列要明确,以在前期就避免在做数据分析时可能遇到的一些数据类型导致的问题。

mean()函数

当你需要得到数据集的中心点或平均水平时,可以用这个函数计算数组中元素的算术平均值。

std() 函数

当你想衡量数据集中各数值与平均值的偏差时,可以用此函数计算数组中元素的标准差,标准差反映了数据的离散程度。

var() 函数

当需要了解数据分布的一致性或变化程度时,可使用此函数计算数组中元素的方差,方差衡量的是数据的波动大小。

std 函数和 var 函数在统计学中都用于描述数据集的离散程度,但它们衡量这一特征的方式有所不同:

var 函数计算的是方差,它描述了数据集中的数值与数据集平均值之间的差异程度。方差是各数据点与平均值差值的平方和的平均数。方差越大,数据的分布就越分散。std 函数计算的是标准差,它也描述数据的离散程度,但是与方差不同,标准差是方差的平方根。标准差用相同的单位衡量数据的离散程度,使得其更容易直接与数据本身进行比较。

sum() 函数

当你需要得到一组数值的累积总和时,可以使用此函数计算数组中所有元素的总和。

median() 函数

当需要找到数据集中的中间值,尤其在数据分布偏斜时比平均值更有代表性,可以使用此函数计算数组中元素的中位数,中位数是将数列排序后位于中间的值。

min() 和 max() 函数

当需要确定数据范围或数据极值时,可以使用这两个函数分别找到数组中的最小值和最大值。

percentile() 函数

当需要确定数据的分布位置或比较不同数据集的相对位置时,可以使用此函数计算数组中元素的第 q 个百分位数。

小结

好吧今天的练习很简单对不对,掌握这 8 个统计函数,Numpy数组的统计信息你应该就可以一网打尽了!最后还是那句话,想要进军 AI,一定要从基础开始练习!

最近发表
标签列表