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
猜你喜欢
- 一、背景交通大数据是由交通运行管理直接产生的数据(包括各类道路交通、公共交通、对外交通的刷卡、线圈、卡口、GPS、视频、图片等数据)、交通相
- Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。外键涉及到两个表,其中一
- QueueQueue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生
- 目录什么是 JSON在哪里使用JSON基本的 JSON 语法如何在 Python 中处理 JSON 数据包含 JSON 模块使用 json.
- 大家做网站,特别是自己写的代码,常常担心被一些黑客入侵服务器,从而导致网站代码被盗,给自己带来一些损失。那么我们怎么样做,就算黑客盗了你的代
- 一、 什么是进程 / 线程1、 引论众所周知,CPU是计算机的核心,它承担了所有的计算任务。而操作系统是计算机的管理者,是一个大管家,它负责
- DatePart 的语法是 DatePart(interval, date),用以取 date 的某部分。 interval yyyy:da
- 一、将对象转为json字符串json.dumps:将 Python 对象编码成 JSON 字符串json.loads:将已编码的 JSON
- 1.查询高于平均价格的商品名称:SELECT item_name FROM ebsp.product_mark
- 本项目是利用五年左右的世界地震数据,通过python的pandas库、matplotlib库、basemap库等进行数据可视化,绘制出地震散
- 运算符重载意味着赋予超出其预定义的操作含义的扩展含义。例如运算符 + 用于添加两个整数以及连接两个字符串和合并两个列表。这是可以实现的,因为
- 您是否知道 OpenCV 具有执行行人检测的内置方法?OpenCV 附带一个预训练的 HOG + 线性 SVM 模型,可用于在图像和视频流中
- 安装很简单pip install psutil官网地址为:https://pythonhosted.org/psutil/ (文档上有详细的
- 什么是 manimManim 是一个用于精确编程动画的引擎,专为创建解释性数学视频而设计。注意,有两个主要版本的 manim。该存储库最初是
- 今天用实验室的pycharm运行程序的时候发现出现了已安装的模块无法导入的情况,但实际上这个模块我已经在notebook中使用多次了,所以不
- 对图片进行resize、裁剪、旋转、翻转图片处理时常用的手段有resize、裁剪、旋转、翻转,简单介绍一下python中怎么利用PIL库和t
- 本文实例为大家分享了python使用KNN算法识别手写数字的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-
- 在Asp中如何得到所有表单的名称跟对应的值。其实,这个问题很简单,但是可能还是有很多人不知道该怎么做,所以特地写下来,仅供参考。在Asp程序
- 本文实例讲述了Python实现的合并两个有序数组算法。分享给大家供大家参考,具体如下:思路按位循环比较两个数组,较小元素的放入新数组,下标加
- 使用本文给出的方法就可以制作出一个简单的rss阅读器了。用xmldom方法打开xml文件,如果是本地的没有问题,就是用Server.MapP