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

news2025/1/18 14:01:31

随机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参数来指定各个元素被抽到的概率,默认情况下假定所有元素被抽到的概率相等。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python socket编程6 - 使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的例子

使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的示例。 一、PyQt6 实现的界面 二、TCP server代码的修改示意 界面提供网络参数的配置,以及提供人机交互过程中的数据获取和显示。 1、把上面的server代码封装成两个部分 A、class Server 负责接受UI界面…

6.1 U-boot的使用

由于Ubuntu出现了一些问题,后面都是使用正点原子官方版本。 一、U-boot使用 1. U-boot源码 Linux 系统要启动需要通过 bootloader 程序引导,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后…

Redis生产实战-Redis集群故障探测以及降级方案设计

Redis 集群故障探测 在生产环境中,如果 Redis 集群崩溃了,那么会导致大量的请求打到数据库中,会导致整个系统都崩溃,所以系统需要可以识别缓存故障,限流保护数据库,并且启动接口的降级机制 降级方案设计 …

【c】小红的漂亮串

#include<stdio.h> #include<string.h> int main() {char arr[1000];int count0;gets(arr);//在数组中输入字符串int lenstrlen(arr);//求字符串长度printf("%d\n",len);for(int i0;i<len;i){if(arr[i]r){if(arr[i1]e){if(arr[i2]d){countcount1;}}}}…

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…

1、初识 llvm源码编译 及virtualbox和ubuntu环境搭建

很久没更新了&#xff0c;最近准备研究逆向和加固&#xff0c;于是跟着看雪hanbing老师学习彻底搞懂ollvm&#xff0c;终于把所有流程跑通了&#xff0c;中间遇到了太多的坑&#xff0c;所以必须记录一下&#xff0c;能避免自己和帮助他人最好。 环境搭建太重要了&#xff0c;…

c语言指针详解下

指针下 1 指针与字符串 int main01(){//指针与字符串char a[] "helloworld";//定义了一个字符数组,字符数组内容为helloworld\0//定义一个指针用来保存数组首元素的地址char * p a;printf("%s\n",p);//%s打印一个字符串,要的是首个字符的地址printf(…

使用Rust 构建C 组件

协议解析&#xff0c;这不就很快了&#xff0c;而且原生的标准库红黑树和avl 树支持&#xff0c;异步tokio 这些库&#xff0c;编写应用组件就很快了 rust 标准库不支持 unix 的消息队列&#xff0c;但是支持 shm 和 uds&#xff0c;后者从多方面考虑都比&#xff0c;消息队列更…

flutter添加全局水印

效果&#xff1a; 可以直接引用&#xff1a;disable_screenshots: ^0.2.0 但是有时候直接引用会报错&#xff0c;可以不引用插件直接把下面的源码工具类放在项目里面 工具类源码&#xff1a; import dart:io; import dart:math;import package:flutter/cupertino.dart; impor…

oomall课堂笔记

一、项目分层结构介绍 controller层&#xff08;控制器层&#xff09;&#xff1a; 作用&#xff1a;负责输出和输入&#xff0c;接收前端数据&#xff0c;把结果返回给前端。 1.处理用户请求&#xff0c;接收用户参数 2.调用service层处理业务&#xff0c;返回响应 servi…

uniapp 打开文件管理器上传(H5、微信小程序、android app三端)文件

H5跟安卓APP 手机打开的效果图&#xff1a; Vue页面&#xff1a; <template><view class"content"><button click"uploadFiles">点击上传</button></view> </template><script>export default {data() {return…

【Linux】已安装 powerlevel10k,报错 command not found: p10k

问题描述 在配置 zsh 时&#xff0c;已经安装了 powerlevel10k&#xff0c;但是当尝试启动 Powerlevel10k 配置向导时&#xff0c;出现了以下错误&#xff1a; p10k configure zsh: command not found: p10k原因分析 出现这个错误的原因是因为 zsh 终端还没有加载最新的配置…

Kafka性能调优:高吞吐、低延迟的数据流

Apache Kafka作为一种高性能、分布式流处理平台&#xff0c;对于实时数据的处理至关重要。本文将深入讨论Kafka性能调优的关键策略和技术&#xff0c;通过丰富的示例代码为大家提供实际操作指南&#xff0c;以构建高吞吐、低延迟的数据流系统。 Broker 配置的优化 首先&#…

[全志Tina/Linux]全志在线生成bootlogo工具

一、需求 由于全志的bootlogo文件要求使用bmp格式的32位RGBA图像&#xff0c;经测试在使用不同版本的ps软件修图时&#xff0c;导出的bootlogo.bmp经常无法被全志uboot识别&#xff0c;因此使用在线工具转换。 二、操作 1、登录工具网站 https://online-converting.com/ima…

C++面试宝典第3题:找不同的数

题目 封装两个函数&#xff0c;分别完成下面的编码任务。 &#xff08;1&#xff09;在一个整型数组中&#xff0c;数字都是两两相同&#xff0c;只有一个不同&#xff0c;请编写代码&#xff0c;最快找出这个不同的数字。 &#xff08;2&#xff09;在一个整型数组中&#xff…

力扣78. 子集(java 回溯解法)

Problem: 78. 子集 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 我们易知&#xff0c;本题目涉及到对元素的穷举&#xff0c;即我们可以使用回溯来实现。对于本题目我们应该较为注重回溯中的决策阶段&#xff1a; 由于涉及到对数组中元素的穷举&#xff0c;即在每…

1、Redis变慢原因排查(上)

感觉Redis变慢了&#xff0c;这些可能的原因你查了没 &#xff1f;(上) Redis 作为一款业内使用率最高的内存数据库&#xff0c;其拥有非常高的性能&#xff0c;单节点的QPS压测能达到18万以上。但也正因此如此&#xff0c;当应用访问 Redis 时&#xff0c;如果发现响应延迟变…

Docker架构及常用的命令

一、初识Docker 1、 docker是一个快速交付应用、运行应用的技术&#xff0c;具备下列优势&#xff1a; 可以将程序及其依赖、运行环境一起打包为一个镜像&#xff0c;可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器&#xff0c;各个应用互不干扰启动、移除都可以…

Redis保证高可用的三种方式

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

用Rust刷LeetCode之66 加一

66. 加一[1] 难度: 简单 func plusOne(digits []int) []int { length : len(digits) // 从最低位开始遍历&#xff0c;逐位加一 for i : length - 1; i > 0; i-- { if digits[i] < 9 { digits[i] return digits } d…