随机Numpy数组的创建方法(第2讲)

随机Numpy数组的创建方法 (第2讲)
       在这里插入图片描述

🍹博主 侯小啾 感谢您的支持与信赖。☀️
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ

✨本博客收录于专栏Python数据分析宝典.。
✨专栏特点:
    ①逻辑清晰,循序渐进,符合初学者思维,内容友好程度高。
    ②内容精炼,且不失重点,入门时间周期短。性比价高。
    ③能够兼容非科班,如金融,经济,统计,数学等专业的小伙伴。
    ④附实战案例加持,搭乘数分精通之路的直通车!

✨更多精彩内容敬请期待,小啾持续为您输出中!

文章目录

  • 1.`rand()` 函数
  • 2.`random()`函数
  • 3. `randint()`函数
  • 4.`randn()`函数
  • 5.`normal()`函数
  • 6.`seed()` 随机数种子
  • 7.`shuffle()` 与 `permutation() ` 随机排序
  • 8. `choice()`随机抽样


1.rand() 函数

PythonNumPy库中,rand函数用于生成一个指定形状的随机数数组。
随机数的值介于0和1之间。

rand函数的基本语法如下:

numpy.random.rand(d0, d1, ..., dn)

参数说明:

  • d0, d1, ..., dn:可选参数,定义了生成的随机数数组的形状。

代码示例:

import numpy as np

# 生成一个随机数
random_num = np.random.rand()
print(f"随机数: {random_num}")

# 打印分割线
print("-" * 20)

# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.rand(3)
print(f"一维随机数数组:\n{arr1}")

# 打印分割线
print("-" * 20)

# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.rand(2, 3)
print(f"二维随机数数组:\n{arr2}")

输出:
              在这里插入图片描述

需要注意的是,rand函数生成的随机数是从[0, 1)区间内的均匀分布中随机抽取的。可以通过设置d0, d1, ..., dn参数来指定生成的随机数数组的形状。如果不指定这些参数,则返回一个随机数。


2.random()函数

PythonNumPy库中,random函数用于生成指定形状的随机数数组。该函数返回一个由[0, 1)区间内的随机数构成的数组。

random函数的基本语法如下:

numpy.random.random(size=None)

参数说明:

  • size:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。

示例使用:

import numpy as np

# 生成一个随机数
random_num = np.random.random()
print(random_num)
print("-" * 20)

# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.random(3)
print(arr1)
print("-" * 20)

# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.random((2, 3))
print(arr2)

输出:
              在这里插入图片描述


3. randint()函数

在Python的NumPy库中,randint函数用于生成指定范围内的随机整数。该函数返回一个由随机整数构成的数组。

randint函数的基本语法如下:

numpy.random.randint(low, high=None, size=None, dtype=int)

参数说明:

  • low:生成随机整数的最低值(包含)。
  • high:可选参数,生成随机整数的最高值(不包含)。如果未提供,则生成的随机整数范围为[0, low)。
  • size:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。
  • dtype:可选参数,输出数组的数据类型,默认为整数类型。

示例使用:

import numpy as np

# 生成一个随机整数
random_num = np.random.randint(0, 10)
print(random_num)
print("-" * 20)

# 生成一个形状为(3,)的一维随机整数数组
arr1 = np.random.randint(0, 10, size=3)
print(arr1)
print("-" * 20)

# 生成一个形状为(2, 3)的二维随机整数数组
arr2 = np.random.randint(0, 10, size=(2, 3))
print(arr2)

输出:
              在这里插入图片描述

randint函数生成的随机整数范围是闭区间[low, high),即包含最低值low而不包含最高值high。可以通过设置size参数来指定生成的随机整数数组的形状。如果不提供high参数,则默认范围为[0, low)。


4.randn()函数

在Python的NumPy库中,randn函数用于生成具有标准正态分布(均值为0,方差为1)的随机数数组。该函数返回一个由随机数构成的数组。

randn函数的基本语法如下:

numpy.random.randn(d0, d1, ..., dn)

参数说明:

  • d0, d1, ..., dn:可选参数,定义了生成的随机数数组的形状。

示例使用:

import numpy as np

# 生成一个随机数
random_num = np.random.randn()
print(random_num)
print("-" * 20)

# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.randn(3)
print(arr1)
print("-" * 20)

# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.randn(2, 3)
print(arr2)

输出:
              在这里插入图片描述

需要注意的是,randn函数生成的随机数来自于标准正态分布(均值为0,方差为1)。可以通过设置d0, d1, ..., dn参数来指定生成的随机数数组的形状。如果不指定这些参数,则返回一个随机数。


5.normal()函数

在Python的NumPy库中,normal函数用于生成具有指定均值和标准差的随机数数组。该函数返回一个由随机数构成的数组,这些随机数来自于正态分布(高斯分布)。

normal函数的基本语法如下:

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数说明:

  • loc:可选参数,指定正态分布的均值(默认为0)。
  • scale:可选参数,指定正态分布的标准差(默认为1)。
  • size:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。

示例使用:

import numpy as np

# 生成一个随机数
random_num = np.random.normal()
print(random_num)
print("-" * 20)

# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.normal(size=3)
print(arr1)
print("-" * 20)

# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.normal(size=(2, 3))
print(arr2)

在这里插入图片描述
normal函数生成的随机数来自于正态分布(高斯分布),其均值为loc,标准差为scale。可以通过设置size参数来指定生成的随机数数组的形状。如果不提供locscale参数,则默认均值为0,标准差为1。


6.seed() 随机数种子

在Python的NumPy库中,seed函数用于设置随机数生成器的种子。使用相同的种子可以确保每次运行程序时生成的随机数是一样的。

seed函数的基本语法如下:

numpy.random.seed(seed=None)

参数说明:

  • seed:可选参数,指定随机数生成器的种子值。可以是任意整数或一个数组。

示例使用:

import numpy as np


# 设置随机数生成器的种子为0
np.random.seed(0)

# 生成两个随机数(使用相同的种子)
random_num1 = np.random.rand()
random_num2 = np.random.rand()
print(random_num1, random_num2)

可以通过重复执行代码,以得到相同的随机数。
需要注意的是,通过设置种子来控制随机数生成可以使得结果可重复。但是在实际应用中,通常不会显式地设置种子,以便获得更好的随机性。


7.shuffle()permutation() 随机排序

在Python的NumPy库中,shuffle函数用于对数组进行随机重排,permutation函数也可以实现类似的功能。这两个函数可以用于洗牌、打乱数据集等应用场景。

shuffle函数和permutation函数的基本语法如下:

numpy.random.shuffle(x)
numpy.random.permutation(x)

参数说明:

  • x:待重排的数组或列表。

示例使用:

import numpy as np

# 使用shuffle函数随机重排一个列表
my_list = [1, 2, 3, 4, 5]
np.random.shuffle(my_list)
print(my_list)
print("-" * 20)

# 使用permutation函数随机重排一个数组
my_array = np.array([1, 2, 3, 4, 5])
shuffled_array = np.random.permutation(my_array)
print(shuffled_array)

输出:
              在这里插入图片描述

需要注意的是,shuffle函数直接对原始数组进行随机重排,而permutation函数返回一个新的随机重排后的数组,不改变原始数组。这两个函数都可以用于一维数组或列表,对于多维数组,它们只会对第一个维度进行重排,保持其他维度的相对位置不变。


8. choice()随机抽样

在Python的NumPy库中,choice函数用于从给定的一维数组或列表中随机抽取元素。该函数返回一个随机抽样后的数组或标量。

choice函数的基本语法如下:

numpy.random.choice(a, size=None, replace=True, p=None)

参数说明:

  • a:一维数组或列表,表示要进行随机抽样的数据。
  • size:可选参数,指定抽样结果的形状。可以是整数,也可以是由整数组成的元组。如果不提供,则返回一个随机抽样的标量。
  • replace:可选参数,表示是否允许重复抽样。如果为True(默认),则允许重复抽样;如果为False,则不允许重复抽样。
  • p:可选参数,表示各个元素被抽到的概率。如果未提供,则假定所有元素被抽到的概率相等。

示例使用:

import numpy as np

# 从一维数组中随机抽取一个元素
arr1 = np.array([1, 2, 3, 4, 5])
random_choice1 = np.random.choice(arr1)
print(random_choice1)
print("-" * 20)

# 从一维数组中随机抽取三个元素,允许重复抽样
random_choices1 = np.random.choice(arr1, size=3)
print(random_choices1)
print("-" * 20)

# 从一维数组中随机抽取三个元素,不允许重复抽样
random_choices2 = np.random.choice(arr1, size=3, replace=False)
print(random_choices2)
print("-" * 20)

# 从一维数组中按指定概率抽取一个元素
random_choice2 = np.random.choice(arr1, p=[0.1, 0.2, 0.3, 0.2, 0.2])
print(random_choice2)

输出:
              在这里插入图片描述

choice函数可以用于一维数组或列表。如果未提供size参数,则返回一个随机抽样的标量;如果提供了size参数,则返回一个具有指定形状的随机抽样结果。可以通过设置replace参数来控制是否允许重复抽样。可以通过设置p参数来指定各个元素被抽到的概率,默认情况下假定所有元素被抽到的概率相等。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227532.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营 ---第五十八天

今天开启单调栈的征程。 第一题: 简介: 本题有两种解法,第一种:暴力破解 两层for循环 时间复杂度为O(n^2) 超时了 第二种:单调栈解法也是今天的主角。 单调栈是什么? 单调递增栈:单调递增栈…

在vue中深度选择器的使用

一、为什么要使用深度选择器 在vue中,当我们使用了第三方库中的组件时,想要更改一些样式,达到我们想要的效果,由于scoped的影响直接编写同名样式时,是覆盖不了组件内的样式的。 为了达到我们想要的效果,…

关于最长上升子序列的动态规划问题的优化算法(二分搜索)

最长递增子序列 暴力解法: 思路:使用动态规划的思想,判断当前元素之前的所有元素,如果比当前元素小,则修改当前元素的最长递增子序列(需判断是否需要修改)。 时间复杂度:O(n^2) im…

智能优化算法应用:基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天鹰算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

记一次Java内存溢出导致程序宕机的问题及排查

Hi, I’m Shendi 记一次Java内存溢出导致程序宕机的问题及排查 问题场景 今天在使用工具中的 word 转 pdf 出了问题,报502错误,打开服务器发现服务被关闭了,起初以为是误关,打开后重新转换又出现了这个问题,在项目文件…

Redis保证高可用的三种方式

Redis保证高可用主要有三种方式:主从、哨兵、集群。 主从复制了解吗? Redis主从复制简图 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 主节点(master),后者称为 从节点(slave)。且…

【EXCEL】offset函数

语法: offset(reference,row,column,[height],[width]) 例子:

Java网络编程 *TCP与UDP协议*

网络编程 什么是计算机网络? 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 简单来说就是把不同地区的计算机通过设备连接起来,实现不同地区之前的数据传输 网络编程是干什么的? 网络…

UDS诊断 10服务

文章目录 简介诊断会话切换请求和响应1、请求2、子功能3、肯定响应4、否定响应5、特殊的NRC 为什么划分不同会话报文示例UDS中常用 NRC参考 简介 10服务,即 Diagnostic Session Control(诊断会话控制)服务用于启用服务器中的不同诊断会话&am…

【软件测试】系统测试

一、系统测试概念 系统测试(System Testing)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素结合在一起,在实际运行环境下,对计算机…

定兴县第三实验小学开展“宪法宣传周”系列活动

2023年12月4日是我国第十个国家宪法日,我校集中深入学习宣传宪法,弘扬宪法精神,维护宪法权威,开展“宪法宣传周”系列活动。 宪法主题升旗仪式 五(6)班薛谨熙同学以《学法懂法 与我同行》为主题做国旗下讲…

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法,它是将数据分成互不相交的K类。K均值法先指定聚类数,目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小,规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…

共创共赢|美创科技获江苏移动2023DICT生态合作“产品共创奖”

12月6日,以“5G江山蓝 算网融百业 数智创未来”为主题的中国移动江苏公司2023DICT合作伙伴大会在南京成功举办。来自行业领军企业、科研院所等DICT产业核心力量的百余家单位代表参加本次大会,共话数实融合新趋势,共拓合作发展新空间。 作为生…

9.关于Java的程序设计-基于Springboot的家政平台管理系统设计与实现

摘要 随着社会的进步和生活水平的提高,家政服务作为一种重要的生活服务方式逐渐受到人们的关注。本研究基于Spring Boot框架,设计并实现了一种家政平台管理系统,旨在提供一个便捷高效的家政服务管理解决方案。系统涵盖了用户注册登录、家政服…

Java se的语言特征之封装

目录 封装的概念常见的一些包静态成员变量代码块 封装的概念 可以理解为套壳屏蔽细节,将数据和操作数据的方法进行有机的结合,隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互 从语法的层面来理解就是,被private修饰的成员变或者成员方法,只能在当前类中使用,但是可以…

力扣541.反转字符串 II

文章目录 力扣541.反转字符串 II示例代码实现总结收获 力扣541.反转字符串 II 示例 代码实现 class Solution {public String reverseStr(String s, int k) {char[] ans s.toCharArray();for(int i0;i<ans.length;i2*k){int begin i;int end Math.min(ans.length-1,begin…

3、Linux_系统用户管理

1.Linux 用户管理 1.1概述 Linux系统是一个多用户多任务的操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。 1.2添加用户 语法 useradd […

QT----Visual Studio打开.ui文件报错无法打开

问题 在我安装完qt后将它嵌入vs&#xff0c;后新建的文件无法打开ui文件 解决方法 右击ui文件打开方式,添加,程序找到你qt的安装目录里的designer.exe。点击确定再次双击就能够打开。

【每日一题】重新规划路线

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;深度优先搜索方法二&#xff1a;广度优先搜索 写在最后 Tag 【深搜】【广搜】【树】【2023-12-07】 题目来源 1466. 重新规划路线 题目解读 题目给定一张由 n个点&#xff08;使用 0 到 n−1 编号&#xff09;&#…

Linux查看命令的绝对路径

linux查看命令的绝对路径 在Linux中&#xff0c;可以使用以下命令来查看命令的绝对路径&#xff1a; 1、which 命令名 例如&#xff0c;要查看chronyc命令的绝对路径&#xff0c;可以运行&#xff1a; which chronyc 2、whereis 命令名 例如&#xff0c;要查看chronyc命令…