迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中使用 SciPy、NumPy 和 Pandas 存储数据

作者:迹忆客 最近更新:2023/06/28 浏览次数:

随着数据和用例的指数级增长,数据分箱或分类对于理解这些数据变得必要。

关于数据分箱,可以使用不同的技术,例如数据聚类或更经典的统计技术(例如回归分析)。

我们将了解为什么需要数据分箱以及哪种技术最适合哪种情况。


Python 中的分箱

分箱是推断不同变量关系的最强大的分析技术之一。

分箱是一种非参数且高度灵活的技术,其中变量被分类为不同的集合以揭示模式和趋势。 它广泛适用于各种数据集和微小样本量。

分箱是将数据分组到箱中的过程。 它可以用于各种目的,例如按范围对数据点进行分组、按密度对数据点进行分组或按相似性对数据点进行分组。

在 python 中对数据进行装箱的方法有多种,例如使用 numpy.digitize() 函数、pandas.cut() 函数以及使用 scipy.stats.binned_statistic() 函数。

每种方法都有优点和缺点,因此选择适合任务的方法至关重要。


数据装箱的重要性

数据分箱是一个简单的概念:对数据进行分类以进行更直接的分析。 例如,您可能在 CSV 中有多个大型数据表,并且您希望将数据分成更小的块。

数据分箱允许您将数据放入不同的组中,以便您可以更好地分析它,我们还可以使用它来创建漂亮的可视化效果。

那么,为什么需要数据分箱呢? 首先,数据分箱至关重要,因为它可以帮助您更好地分析数据。 例如,您可以将整个数据表拆分为更容易理解或可视化的更小的块。

数据分箱可以帮助您找到数据中的模式,并更轻松地识别异常值。 它允许您获取大量数据集并使其更易于管理以解决问题的实质。

数据分箱是将连续变量细分为离散箱的过程。 举一个粗略的例子,如果您有患者的体温变量,您可以将温度分为五个箱(例如,< 36.5、36.5–37.5、37.5–38.5、38.5–39.5 和 > 39.5)。

此优点是您可以使用箱范围在直方图或箱形图中可视化变量。


在 Python 中绑定数据的不同方法

在 Python 中存储数据的方法有多种,但使用 SciPy 和 NumPy 库可以说是最有效的。

在 Python 中使用 SciPy 和 NumPy 进行数据分箱

首先使用 SciPy 和 NumPy,假设您有一个要分箱的数据点列表。 第一步是导入 SciPy 和 NumPy 库:

import numpy as np
import scipy as sp

接下来,您需要定义垃圾箱的边缘。 可以使用 linspace 函数来完成:

bin_edges = np.linspace(start, stop, num=num_bins)

其中 start 和 stop 分别是数据的最小值和最大值,num_bins 是要创建的 bin 编号。 最后,您可以使用 SciPy 直方图函数对数据进行分箱:

binned_data = sp.histogram(data, bin_edges)

binned_data 变量现在将包含一个包含两个元素的元组。 第一个元素是分箱数据的数组,第二个元素是分箱边缘的数组。

在 Python 中使用 Numpy 进行数据分箱

代码示例:

# import Numpy library
import numpy

# define the edges of bin
data = numpy.random.random(100)
bins = numpy.linspace(0, 1, 10)

# finally, bin the data using numpy
digitized = numpy.digitize(data, bins)
bin_means = [data[digitized == i].mean() for i in range(1, len(bins))]
bins = numpy.linspace(0, 1, 10)

digitized = numpy.digitize(data, bins)
[data[digitized == i].mean() for i in range(1, len(bins))]

输出:

[0.05308461260140375,
 0.16559348769870028,
 0.28950800899648155,
 0.3874228665181473,
 0.5046647094141071,
 0.6254841134474202,
 0.7216935463408317,
 0.8374773268113803,
 0.9421576008815353]

在 Python 中使用 Pandas 进行数据分箱

代码示例:

# import libraries
import numpy as np
import pandas

df = pandas.DataFrame({"a": np.random.random(100), 
                       "b": np.random.random(100) + 10})

# will Bin the data frame by "a" in 10 bins
bins = np.linspace(df.a.min(), df.a.max(), 10)
groups = df.groupby(pandas.cut(df.a, bins))

# Get the b mean that the values will bin
print (groups.mean().b)

输出:

a
(0.00762, 0.117]    10.576639
(0.117, 0.226]      10.319629
(0.226, 0.335]      10.633805
(0.335, 0.444]      10.404979
(0.444, 0.553]      10.551616
(0.553, 0.662]      10.420306
(0.662, 0.771]      10.434091
(0.771, 0.88]       10.402038
(0.88, 0.989]       10.537547
Name: b, dtype: float64

使用 SciPy 在 Python 中对数据进行 Bin 处理

代码示例:

# import libraries
import numpy as np
from scipy import stats

# define array
arr = [20, 2, 7, 1, 34]
print("\narr : \n", arr)

# start binning
print("\nbinned_statistic for median : \n", stats.binned_statistic(
        arr, np.arange(5), statistic ='median', bins = 4)) 

输出:

Array = [20, 2, 7, 1, 34]

Binned statistics for median

BinnedStatisticResult(statistic=array([ 2., nan,  0.,  4.]), bin_edges=array([ 1.  ,  9.25, 17.5 , 25.75, 34.  ]), binnumber=array([3, 1, 1, 1, 4], dtype=int64))

上一篇:在 Python 中使用 Fsolve

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用 Fsolve

发布时间:2023/06/28 浏览次数:65 分类:Python

本文将探讨如何使用 fsolve 在 Python 中求解。 我们还将探索它的使用场景和一些示例代码,以更好地理解如何以及何时使用它来达到某种结果。让我们首先了解 fsolve 是什么以及为什么使用它。

在 Python 中创建 Getter 和 Setter

发布时间:2023/06/28 浏览次数:172 分类:Python

这些行为在支持 OOP 的编程语言中很流行,Python 也支持它。 本文将讨论如何在 Python 中创建 getter 和 setter。Python 中的 Getter 和 Setter

从 Java 代码调用 Python 脚本

发布时间:2023/06/28 浏览次数:93 分类:Python

本篇文章介绍了从 Java 代码调用 Python 脚本的三种不同方法。从 Java 代码调用 Python 脚本 有时,我们必须从Java代码中调用Python脚本来满足项目需求。

Python 中的位掩码简介

发布时间:2023/06/27 浏览次数:125 分类:Python

本篇文章介绍了 Python 中的位掩码,并演示了如何使用按位运算符(例如 AND、OR、NOT 等)执行位掩码。Python 中的位掩码简介 位掩码是几乎所有编程语言的通用概念;

在 Ubuntu 中卸载 Python

发布时间:2023/06/27 浏览次数:158 分类:Python

本文演示如何从 Ubuntu 中删除或卸载 Python。检查你的系统中是否安装了Python 使用 Ctrl+Alt+T 打开终端。打开终端后,使用命令 python3 --version 检查您的系统是否安装了 python。

Python Teradata 连接

发布时间:2023/06/27 浏览次数:86 分类:Python

本文将讨论一些基本的正确准则,并在讨论连接方式之前了解 Teradata 模块的工作原理。Python 中的 Teradata 数据库 您可以使用 Python 和 Teradata 模块编写与 Teradata 数据库的强大交互脚本。

在 Python 中查找素因数

发布时间:2023/06/27 浏览次数:175 分类:Python

本篇文章将介绍如何在 Python 中执行素因数分解。质因数分解概述 在数学中,数字的因子是那些可以除以给定数字且余数为零的数字。

在 Python 中从 URL 中提取域

发布时间:2023/06/27 浏览次数:86 分类:Python

本文将通过实际例子来讲解Python的 urlparse() 函数从URL中解析并提取域名。 我们还将讨论提高解析 URL 和使用其不同组件的能力。使用 urlparse() 从 URL 中提取域

Python 中的省略号对象

发布时间:2023/06/27 浏览次数:158 分类:Python

本篇文章将介绍 Python 中省略号对象的使用。使用省略号作为未编写代码的占位符 省略号对象可以以不同的方式使用。 它主要充当未编写代码的占位符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便