当前位置: 首页> 健康> 美食 > 263企业邮箱登官网_无锡网站优化工作室_进入百度一下官网_友情链接平台站长资源

263企业邮箱登官网_无锡网站优化工作室_进入百度一下官网_友情链接平台站长资源

时间:2025/7/11 0:46:54来源:https://blog.csdn.net/u014394049/article/details/142654667 浏览次数:0次
263企业邮箱登官网_无锡网站优化工作室_进入百度一下官网_友情链接平台站长资源

Python NumPy 随机数与操作:全面掌握随机生成与分布

文章目录

  • Python NumPy 随机数与操作:全面掌握随机生成与分布
      • 一 主要涉及功能
      • 二 多种随机数生成
        • 1 常规随机数生成
        • 2 使用 numpy 生成
      • 三 在原有数据上随机
        • 1 随机已有数据
        • 2 重新排列数据
        • 3 随机生成序列数据
        • 4 对已有维度数据乱序
      • 四 随机分布
      • 五 随机种子 seed
        • 划重点
      • 七 源码地址

本文系统介绍了如何使用 NumPy 生成多种随机数和处理随机操作。通过 np.random.rand()np.random.randint() 等函数,能够轻松生成范围不同的随机数,并通过 np.random.choice() 实现对已有数据的随机选择与排列。此外,文章还深入探讨了如何生成正态分布和均匀分布的随机数据,并讲解了随机种子的概念及其重要性,确保在需要时能够重现相同的随机序列。NumPy 强大的随机数生成和处理功能在数据分析、机器学习等领域中有着广泛应用,是高效处理随机数据的重要工具。

导入 numpy 库

import numpy as np

一 主要涉及功能

多种随机数生成给你施加随机随机分布随机种子的重要性
np.random.rand()np.random.choice()np.random.normal() np.random.seed()
np.random.random()np.random.shuffle()np.random.uniform()
np.random.randn()np.random.permutation()
np.random.randint()

二 多种随机数生成

1 常规随机数生成
import random
print(random.random())
print(random.randint(1, 10))
2 使用 numpy 生成
# 随机生成 [0, 1) 之间的数
dim1, dim2 = 3, 2
print(np.random.rand(dim1, dim2))  # 你还能继续添加 dim3 或更多
print(np.random.randn(dim1, dim2))
print(np.random.randint(low=-3, high=6, size=10))

三 在原有数据上随机

1 随机已有数据

对已有的数据做随机化处理,随机从一组数据中选择。

# 给你施加随机
data = np.array([2, 1, 3, 4, 6])
print("选一个:", np.random.choice(data))
print("选多个:", np.random.choice(data, size=3))
print("不重复地选多个(不放回):", np.random.choice(data, size=3, replace=False))
print("带权重地选择:", np.random.choice(data, size=10, p=[0, 0, 0, 0.2, 0.8]))
2 重新排列数据
# 将源数据洗牌重新排列,如果你想保留源数据的话,记得 np.copy(data) 备份一下
data_copy = np.copy(data)
np.random.shuffle(data)
print("源数据:", data_copy)
print("shuffled:", data)
3 随机生成序列数据
print("直接出乱序序列:", np.random.permutation(10))
data = np.arange(12).reshape([6, 2])
print(data)
4 对已有维度数据乱序
# 多维数据在第一维度上乱序,指的是这个维度的行乱序
print("多维数据在第一维度上乱序:", np.random.permutation(data))

四 随机分布

生成 正态分布 和 均匀分布

# (均值,方差,size)
print("正态分布:", np.random.normal(1, 0.2, 10))# (最低,最高,size)
print("均匀分布:", np.random.uniform(-1, 1, 10))

五 随机种子 seed

Numpy 中的 random seed 概念,随机种子。当我们把种子固定的时候(用一个数字),同一个种子(数字)产生的随机序列就会一样。

# 随机种子的重要性
# seed(1) 代表的就是 1 号随机序列
np.random.seed(1)
print(np.random.randint(2, 10, size=3))
print(np.random.randint(2, 10, size=3))
划重点

重新设定种子,输入不同种子随机值不一样,输入相同种子随机值一样。

np.random.seed(2)
print(np.random.randint(2, 10, size=3))
np.random.seed(2)
print(np.random.randint(2, 10, size=3))
np.random.seed(3)
print(np.random.randint(2, 10, size=3))

六 完整代码示例

# This is a sample Python script.# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.import random
import numpy as npdef print_hi(name):# Use a breakpoint in the code line below to debug your script.print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.# 多种随机数生成print(random.random())print(random.randint(1, 10))# 随机生成 [0, 1) 之间的数dim1, dim2 = 3, 2print(np.random.rand(dim1, dim2))  # 你还能继续添加 dim3 或更多print(np.random.randn(dim1, dim2))print(np.random.randint(low=-3, high=6, size=10))# 给你施加随机# 对已有的数据做随机化处理,随机从一组数据中选择data = np.array([2, 1, 3, 4, 6])print("选一个:", np.random.choice(data))print("选多个:", np.random.choice(data, size=3))print("不重复地选多个(不放回):", np.random.choice(data, size=3, replace=False))print("带权重地选择:", np.random.choice(data, size=10, p=[0, 0, 0, 0.2, 0.8]))# 将源数据洗牌重新排列,如果你想保留源数据的话,记得 np.copy(data) 备份一下data_copy = np.copy(data)np.random.shuffle(data)print("源数据:", data_copy)print("shuffled:", data)print()print("直接出乱序序列:", np.random.permutation(10))data = np.arange(12).reshape([6, 2])print(data)# 多维数据在第一维度上乱序,指的是这个维度的行乱序print("多维数据在第一维度上乱序:", np.random.permutation(data))# 随机分布# (均值,方差,size)print("正态分布:", np.random.normal(1, 0.2, 10))# (最低,最高,size)print("均匀分布:", np.random.uniform(-1, 1, 10))# 随机种子的重要性# seed(1) 代表的就是 1 号随机序列# Numpy 中的 random seed 概念,随机种子。当我们把种子固定的时候(用一个数字),同一个种子(数字)产生的随机序列就会一样np.random.seed(1)print(np.random.randint(2, 10, size=3))print(np.random.randint(2, 10, size=3))# 重新设定种子,输入不同种子随机值不一样,输入相同种子随机值一样np.random.seed(2)print(np.random.randint(2, 10, size=3))np.random.seed(2)print(np.random.randint(2, 10, size=3))np.random.seed(3)print(np.random.randint(2, 10, size=3))# Press the green button in the gutter to run the script.
if __name__ == '__main__':print_hi('随机数和随机操作')# See PyCharm help at https://www.jetbrains.com/help/pycharm/

复制粘贴并覆盖到你的 main.py 中运行,运行结果如下。

Hi, 随机数和随机操作
0.26820579663002186
3
[[0.23769625 0.84180159][0.6803027  0.12729691][0.04838627 0.70520346]]
[[ 0.70639806 -1.6954005 ][ 0.27178615 -0.109168  ][-0.71126773  1.60656291]]
[ 3 -2  5  3  3  5  5 -3 -1  2]
选一个: 4
选多个: [6 6 2]
不重复地选多个(不放回)[3 2 1]
带权重地选择: [6 6 6 6 6 6 6 6 6 6]
源数据: [2 1 3 4 6]
shuffled: [4 1 6 3 2]直接出乱序序列: [9 8 5 4 1 0 2 3 7 6]
[[ 0  1][ 2  3][ 4  5][ 6  7][ 8  9][10 11]]
多维数据在第一维度上乱序: [[ 4  5][ 0  1][ 6  7][ 8  9][ 2  3][10 11]]
正态分布: [0.65646377 1.00470103 1.24920803 1.0686203  1.32182154 1.203985630.90713109 0.69131479 1.25044157 1.23252619]
均匀分布: [-0.46948493 -0.47675182 -0.26496685 -0.69132407 -0.31516505 -0.10873339-0.51476718 -0.66316394  0.54334361  0.75461276]
[7 5 6]
[2 9 3]
[2 9 7]
[2 9 7]
[4 2 3]

七 源码地址

代码地址:

国内看 Gitee 之 numpy/随机数和随机操作.py

国外看 GitHub 之 numpy/随机数和随机操作.py

引用 莫烦 Python

关键字:263企业邮箱登官网_无锡网站优化工作室_进入百度一下官网_友情链接平台站长资源

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: