Python NumPy中的随机数及ufuncs函数使用示例详解

作者:魔王不会哭 时间:2021-09-22 15:29:08 

什么是随机数

随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。

伪随机和真随机

计算机在程序上工作,程序是权威的指令集。

因此,这意味着必须有某种算法来生成随机数。

如果存在生成随机数的程序,则可以预测它,因此它就不是真正的随机数。

通过生成算法生成的随机数称为伪随机数。

我们可以生成真正的随机数吗

是的。

为了在我们的计算机上生成一个真正的随机数,我们需要从某个外部来源获取随机数据。

外部来源通常是我们的击键、鼠标移动、网络数据等。

我们不需要真正的随机数,除非它与安全性(例如加密密钥)有关或应用的基础是随机性(例如数字轮盘赌轮)。

在本教程中,我们将使用伪随机数。

生成随机数

NumPy 提供了 random 模块来处理随机数。

实例

生成一个 0 到 100 之间的随机整数:

from numpy import random
x = random.randint(100)
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

生成随机浮点

random 模块的 rand() 方法返回 0 到 1 之间的随机浮点数。

实例

生成一个 0 到 100 之间的随机浮点数:

from numpy import random
x = random.rand()
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

生成随机数组

在 NumPy 中,我们可以使用上例中的两种方法来创建随机数组。

整数

randint() 方法接受 size 参数,您可以在其中指定数组的形状。

实例

生成一个 1-D 数组,其中包含 5 个从 0 到 100 之间的随机整数:

from numpy import random
x=random.randint(100, size=(5))
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

实例

生成有 3 行的 2-D 数组,每行包含 5 个从 0 到 100 之间的随机整数:

from numpy import random
x = random.randint(100, size=(3, 5))
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

浮点数

rand() 方法还允许您指定数组的形状。

实例

生成包含 5 个随机浮点数的 1-D 数组:

from numpy import random
x = random.rand(5)
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

实例

生成有 3 行的 2-D 数组,每行包含 5 个随机数:

from numpy import random
x = random.rand(3, 5)
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

从数组生成随机数

choice() 方法使您可以基于值数组生成随机值。

choice() 方法将数组作为参数,并随机返回其中一个值。

实例

返回数组中的值之一:

from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

choice() 方法还允许您返回一个值数组。

请添加一个 size 参数以指定数组的形状。

实例

生成由数组参数(3、5、7 和 9)中的值组成的二维数组:

from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

什么是 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)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

对此,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)

运行实例

Python NumPy中的随机数及ufuncs函数使用示例详解

来源:https://blog.csdn.net/python56123/article/details/130579585

标签:Python,NumPy,随机数,ufuncs
0
投稿

猜你喜欢

  • python爬虫使用requests发送post请求示例详解

    2022-02-26 16:50:22
  • ACCESS的参数化查询 附ASP和C#(ASP.NET)函数

    2008-01-10 12:18:00
  • Python list运算操作代码实例解析

    2021-11-17 21:44:43
  • 页面链接方式的统一性

    2008-03-24 17:02:00
  • Python Flask前端自动登录功能实现详解

    2021-12-13 17:36:17
  • MySQL数据库的临时文件究竟储存在哪里

    2009-02-13 13:44:00
  • 零基础使用Python读写处理Excel表格的方法

    2021-01-02 13:33:07
  • 从一个项目中来看三层架构

    2008-08-06 12:50:00
  • Python实现企业微信通知机器人的方法详解

    2021-03-12 09:56:02
  • MySQL UPDATE delete 语句的速度

    2008-03-12 12:22:00
  • python生成n个元素的全组合方法

    2023-11-10 20:35:08
  • Request.ServerVariables("HTTP_REFERER")的用法

    2008-06-19 13:33:00
  • 五种提高 SQL 性能的方法

    2008-05-16 10:40:00
  • Python使用pygame模块编写俄罗斯方块游戏的代码实例

    2021-11-15 02:29:29
  • 很酷的JQuery Solar System

    2007-12-15 08:09:00
  • 设计手机端应用时的一些建议

    2011-05-14 16:45:00
  • asp如何获知Connection对象更多的信息?

    2009-11-23 20:53:00
  • asp如何制作一个简单的翻页程序?

    2010-06-29 21:26:00
  • golang copy函数使用的坑

    2023-07-09 19:53:44
  • PHP asXML()函数讲解

    2023-06-08 14:04:37
  • asp之家 网络编程 m.aspxhome.com