NumPy随机数据分布与Seaborn可视化详解

 更新时间:2024年05月22日 08:32:14   作者:小万哥丶  
数据分布是指数据集中所有可能值出现的频率,并用概率来表示,它描述了数据取值的可能性,Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,用于创建统计图表,本文就给大家详细的介绍一下NumPy随机数据分布与Seaborn可视化,需要的朋友可以参考下

随机数据分布

什么是数据分布?

数据分布是指数据集中所有可能值出现的频率,并用概率来表示。它描述了数据取值的可能性。

在统计学和数据科学中,数据分布是分析数据的重要基础。

NumPy 中的随机分布

NumPy 的 random 模块提供了多种方法来生成服从不同分布的随机数。

生成离散分布随机数

choice(a, p, size):从数组 a 中随机选择元素,并根据概率 p 进行选择。 a:源数组,包含所有可能值。 p:每个值的概率数组,总和必须为 1。 size:输出数组的形状。

示例:生成 100 个随机数,其中 3 出现的概率为 0.2,5 出现的概率为 0.4,7 出现的概率为 0.3,9 出现的概率为 0.1:

import numpy as np

x = np.random.choice([3, 5, 7, 9], p=[0.2, 0.4, 0.3, 0.1], size=100)
print(x)

生成连续分布随机数

NumPy 提供了多种方法来生成服从不同连续分布的随机数,例如正态分布、均匀分布、指数分布等。

randn(size):生成服从标准正态分布的随机数。 rand(size):生成服从均匀分布的随机数。 beta(a, b, size):生成服从 Beta 分布的随机数。 gamma(shape, scale, size):生成服从 Gamma 分布的随机数。 poisson(lam, size):生成服从泊松分布的随机整数。

示例:生成 10 个服从标准正态分布的随机数:

import numpy as np

x = np.random.randn(10)
print(x)

随机排列

洗牌数组

shuffle(arr):对数组 arr 进行随机洗牌,修改原始数组。

示例:随机洗牌数组 [1, 2, 3, 4, 5]

import numpy as np
from numpy.random import shuffle

arr = np.array([1, 2, 3, 4, 5])

shuffle(arr)
print(arr)

生成数组的随机排列

permutation(arr):生成数组 arr 元素的随机排列,不修改原始数组。

示例:生成数组 [1, 2, 3, 4, 5] 的随机排列:

import numpy as np
from numpy.random import permutation

arr = np.array([1, 2, 3, 4, 5])

x = permutation(arr)
print(x)

练习

  • 使用 choice 方法生成 200 个随机数,其中 1 出现的概率为 0.1,2 出现的概率为 0.2,3 出现的概率为 0.7。
  • 生成 10 个服从指数分布的随机数。
  • 对数组 [10, 20, 30, 40, 50] 进行随机洗牌。
  • 生成数组 [6, 7, 8, 9, 10] 元素的随机排列。

解决方案

import numpy as np
from numpy.random import choice, permutation, expon

# 1. 使用 choice 方法生成随机数
random_numbers = choice([1, 2, 3], p=[0.1, 0.2, 0.7], size=200)
print(random_numbers)

# 2. 生成服从指数分布的随机数
exponential_randoms = expon(scale=1, size=10)
print(exponential_randoms)

# 3. 对数组进行随机洗牌
arr = np.array([10, 20, 30, 40, 50])
shuffle(arr)
print(arr)

# 4. 生成数组的随机排列
random_permutation = permutation([6, 7, 8, 9, 10])
print(random_permutation)

使用 Seaborn 可视化分布

简介

Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,用于创建统计图表。它提供了一系列高级绘图函数,可以轻松创建美观且信息丰富的统计图形。

安装 Seaborn

如果您已经安装了 Python 和 pip,可以使用以下命令安装 Seaborn:

pip install seaborn

如果您使用的是 Jupyter Notebook,可以使用以下命令安装 Seaborn:

!pip install seaborn

绘制分布图

分布图是一种可视化数据分布的图表。它显示了数据集中每个值的出现频率。

在 Seaborn 中,可以使用 sns.distplot() 函数绘制分布图。该函数接受以下参数:

data:要绘制分布的数据。可以是数组、列表或 Pandas 数据框。 hist:如果为 True(默认),则绘制直方图;如果为 False,则只绘制密度曲线。 kde:如果为 True(默认),则使用核密度估计 (KDE) 来估计数据的分布;如果为 False,则使用直方图。 bins:用于创建直方图的直方图数量。 norm:用于规范分布的类型。例如,norm='kde' 将使用 KDE 来规范分布。

示例:绘制正态分布

以下示例演示如何使用 Seaborn 绘制正态分布:

import seaborn as sns
import numpy as np

# 生成随机数据
data = np.random.randn(1000)

# 绘制分布图
sns.distplot(data)
plt.show()

该代码将生成 1000 个服从标准正态分布的随机数,并使用 Seaborn 绘制它们的分布图。

示例:绘制自定义分布

以下示例演示如何绘制自定义分布:

import seaborn as sns
import numpy as np

# 生成自定义数据
data = [1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9]

# 绘制分布图
sns.distplot(data, hist=False, kde=False)
plt.show()

该代码将生成一个包含重复值的自定义数据数组,并使用 Seaborn 绘制它们的分布图,不显示直方图或密度曲线。

练习

  • 生成 500 个服从均匀分布的随机数,并绘制它们的分布图。
  • 生成 1000 个服从指数分布的随机数,并绘制它们的分布图。
  • 从以下数据中绘制分布图:
data = [23, 37, 43, 29, 31, 32, 36, 27, 31, 33, 34, 25, 27, 28, 42, 38, 27, 27, 33, 31, 26, 29, 31, 35, 33, 30, 30, 32, 36, 28, 31, 33, 38, 29, 31, 31, 34, 36, 26, 25, 26, 34, 37, 28, 36, 31, 29, 31, 27, 28, 32, 37, 30, 33, 33, 27, 31, 32, 32, 36, 25, 32, 35, 37, 37, 30, 31, 34, 33, 29, 32, 31, 36, 26, 29, 31, 37, 28, 28, 37, 31, 32, 36, 33, 27, 31, 32, 33, 32, 32, 30, 27, 36, 38, 35, 26, 32, 37, 31, 30, 33, 30, 27, 

到此这篇关于NumPy随机数据分布与Seaborn可视化详解的文章就介绍到这了,更多相关NumPy数据分布与Seaborn内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现比较文件内容异同

    python实现比较文件内容异同

    这篇文章主要为大家详细介绍了python实现比较文件内容异同,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python如何获取pid和进程名字

    Python如何获取pid和进程名字

    这篇文章主要介绍了Python如何获取pid和进程名字的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Pandas中iloc[]和loc[]的实现示例

    Pandas中iloc[]和loc[]的实现示例

    Pandas中的iloc[]和loc[]是数据索引的核心方法,主要区别在于索引依据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • python 示例分享---逻辑推理编程解决八皇后

    python 示例分享---逻辑推理编程解决八皇后

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
    2014-07-07
  • PyQt5中向单元格添加控件的方法示例

    PyQt5中向单元格添加控件的方法示例

    这篇文章主要介绍了PyQt5中向单元格添加控件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python借助with语句实现代码段只执行有限次

    Python借助with语句实现代码段只执行有限次

    这篇文章主要介绍了Python借助with语句实现代码段只执行有限次,首先要定义一个能够在with语句中使用的类实现enter和exit,下文详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • Python操作MySQL简单实现方法

    Python操作MySQL简单实现方法

    这篇文章主要介绍了Python操作MySQL简单实现方法,通过一个简单的实例讲述了Python针对mysql数据库的增删改查技巧,需要的朋友可以参考下
    2015-01-01
  • 通过Python解析和执行JavaScript代码的完整指南

    通过Python解析和执行JavaScript代码的完整指南

    在Web开发、数据抓取或自动化测试中,我们经常需要处理JavaScript代码,本文将介绍如何通过Python解析和执行JavaScript代码,并提供多种实用方法及代码示例,需要的朋友可以参考下
    2025-09-09
  • 基于Python和wxPython打造一个智能日期文件夹管理工具

    基于Python和wxPython打造一个智能日期文件夹管理工具

    在日常办公中,我们经常需要按日期组织文件,比如每天创建一个以日期命名的文件夹(如20251214),将前一天的Excel文件复制过来并更新日期,今天,我将分享如何用Python的wxPython模块打造一个智能的日期文件夹管理工具,需要的朋友可以参考下
    2025-12-12
  • 哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程

    哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程

    这篇文章主要介绍了哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论