Python NumPy中的随机数及ufuncs函数使用示例详解
作者:魔王不会哭 发布时间:2021-09-22 15:29:08
什么是随机数
随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。
伪随机和真随机
计算机在程序上工作,程序是权威的指令集。
因此,这意味着必须有某种算法来生成随机数。
如果存在生成随机数的程序,则可以预测它,因此它就不是真正的随机数。
通过生成算法生成的随机数称为伪随机数。
我们可以生成真正的随机数吗
是的。
为了在我们的计算机上生成一个真正的随机数,我们需要从某个外部来源获取随机数据。
外部来源通常是我们的击键、鼠标移动、网络数据等。
我们不需要真正的随机数,除非它与安全性(例如加密密钥)有关或应用的基础是随机性(例如数字轮盘赌轮)。
在本教程中,我们将使用伪随机数。
生成随机数
NumPy 提供了 random 模块来处理随机数。
实例
生成一个 0 到 100 之间的随机整数:
from numpy import random
x = random.randint(100)
print(x)
运行实例
生成随机浮点
random 模块的 rand() 方法返回 0 到 1 之间的随机浮点数。
实例
生成一个 0 到 100 之间的随机浮点数:
from numpy import random
x = random.rand()
print(x)
运行实例
生成随机数组
在 NumPy 中,我们可以使用上例中的两种方法来创建随机数组。
整数
randint()
方法接受 size 参数,您可以在其中指定数组的形状。
实例
生成一个 1-D 数组,其中包含 5 个从 0 到 100 之间的随机整数:
from numpy import random
x=random.randint(100, size=(5))
print(x)
运行实例
实例
生成有 3 行的 2-D 数组,每行包含 5 个从 0 到 100 之间的随机整数:
from numpy import random
x = random.randint(100, size=(3, 5))
print(x)
运行实例
浮点数
rand() 方法还允许您指定数组的形状。
实例
生成包含 5 个随机浮点数的 1-D 数组:
from numpy import random
x = random.rand(5)
print(x)
运行实例
实例
生成有 3 行的 2-D 数组,每行包含 5 个随机数:
from numpy import random
x = random.rand(3, 5)
print(x)
运行实例
从数组生成随机数
choice() 方法使您可以基于值数组生成随机值。
choice() 方法将数组作为参数,并随机返回其中一个值。
实例
返回数组中的值之一:
from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)
运行实例
choice() 方法还允许您返回一个值数组。
请添加一个 size 参数以指定数组的形状。
实例
生成由数组参数(3、5、7 和 9)中的值组成的二维数组:
from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)
运行实例
什么是 ufuncs
ufuncs 指的是“通用函数”(Universal Functions),它们是对 ndarray 对象进行操作的 NumPy 函数。
为什么要使用 ufuncs
ufunc 用于在 NumPy 中实现矢量化,这比迭代元素要快得多。
它们还提供广播和其他方法,例如减少、累加等,它们对计算非常有帮助。
ufuncs 还接受其他参数,比如:
where 布尔值数组或条件,用于定义应在何处进行操作。
dtype 定义元素的返回类型。
out 返回值应被复制到的输出数组。
什么是向量化
将迭代语句转换为基于向量的操作称为向量化。
由于现代 CPU 已针对此类操作进行了优化,因此速度更快。
对两个列表的元素进行相加:
list 1: [1, 2, 3, 4]
list 2: [4, 5, 6, 7]
一种方法是遍历两个列表,然后对每个元素求和。
实例
如果没有 ufunc,我们可以使用 Python 的内置 zip() 方法:
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
z.append(i + j)
print(z)
运行实例
对此,NumPy 有一个 ufunc,名为 add(x, y),它会输出相同的结果。
实例
通过 ufunc,我们可以使用 add() 函数:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)
运行实例
来源:https://blog.csdn.net/python56123/article/details/130579585


猜你喜欢
- 前言编程是一件很快乐的事,实现一个目的,我们可以有很多方法路径,在这篇文章我们介绍一些JavaScript的奇技淫巧,仅供大家参考,各路大神
- 由 于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间。
- Python的数据结构有列表、元组、集合、字典等,可以吧列表当成一个清单,是有序的,我们可以通过索引访问到列表中的元素,列表还可以进行修改、
- 描述:输入一个大于0的整数n,输出1到n的全排列:例如:n=3,输出[[3, 2, 1], [2, 3, 1], [2, 1, 3], [3
- 目录前言全局锁表级锁表锁元数据锁(Metadata Locking,简称:MDL锁)总结参考资料前言在真实的企业开发环境中使用MySQL,M
- 由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中,不少
- 1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES W
- 如下所示://定义编码 header( 'Content-Type:text/html;charset=utf-8
- 前言在自学机器学习或者是深度学习的过程中,有的时候总想把执行过程或者执行结果显示出来,所以就想到了动画。好在用 Python 实现动画有许多
- # -*- coding:utf-8 -*-# python3.3.3import sys,time,re,urllib.par
- 观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql卸载前请先关闭Mysql服务servi
- 如何使用mailto?1)基本用法<a href=mailto:sample@163.com>send em
- 本文实例讲述了PHP实现将浏览历史页面网址保存到cookie的方法。分享给大家供大家参考。具体如下:将浏览历史页面网址保存到cookie,大
- 初步认识对于熟悉matplotlib三维画图的人来说,最常用的应该是plot_surface,但这个函数的绘图逻辑是,将xy平面映射到z轴,
- 一、eval()函数是什么?Python的一个内置函数;返回传入字符串的表达式结果(官方)二、eval()函数语法解析三、eval()函数应
- 使用replace做多字符替换import rewords = ''' 钟声响起归家的讯号
- 用习惯列表解析之后会觉得超级酷,所以在尝试使用列表解析,把循环什么的写在一行里面。使用if的时候什么时候必须要有else,什么时候可以没有e
- javascript/js的ajax的GET请求:<script type="text/javascript"&g
- 本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:操作的数组 let arr=[0,1,23,'1
- 目前很多公司业务已经上云,使用了大量的云主机。当前大多数云厂商的云主机公网都是采用的eip,也就是内网和外网使用的同一张网卡,所以流量全部经