English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Número Aleatório do NumPy

O que é número aleatório?

Número aleatório não significa que tenha diferentes números a cada vez. Aleatório significa algo que não pode ser predito lógica.

Pseudo-aleatório e verdadeiro

Os computadores funcionam em programas, e os programas são conjuntos de instruções autoritárias. Portanto, isso significa que deve haver algum algoritmo para gerar números aleatórios.
Se existir um programa para gerar números aleatórios, ele pode ser predito, portanto, não é um número aleatório verdadeiro.
Os números aleatórios gerados por algoritmos de geração são chamados de números pseudo-aleatórios.
Podemos gerar números aleatórios verdadeiros?
Sim. Para gerar um número aleatório verdadeiro em nosso computador, precisamos obter dados aleatórios de uma fonte externa. As fontes externas são geralmente nossos cliques, movimentos do mouse, dados da rede, etc.
Não precisamos de números aleatórios verdadeiros, a menos que estejam relacionados à segurança (por exemplo, chaves de criptografia) ou que a base da aplicação seja a aleatoriedade (por exemplo, roleta de números digitais).
Neste tutorial, usaremos números pseudo-aleatórios.

gerar número aleatório

O NumPy fornece o módulo random para lidar com números aleatórios, a seguir demonstramos a geração de um número flutuante entre 0 100 之间的随机整数:

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

gerar número flutuante aleatório

método rand() do módulo random retorna entre 0 1 número flutuante aleatório entre 10Número flutuante aleatório entre 0

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

生成随机数组

在 NumPy 中,我们可以使用上例中的两种方法来创建随机数组,randint() 方法接受 size 参数,您可以在其中指定数组的形状。
以下演示生成一个 1-D Array, que contém 5 个从 0 到 100 之间的随机整数:

 >>> from numpy import random
 >>> x=random.randint(100, size=(5))
 >>> print(x)
 [36 14 12 91 36]

生成有 3 行的 2-D Array, cada linha contém 5 个从 0 到 100 之间的随机整数:

 >>> from numpy import random
 >>> x = random.randint(100, size=(3, 5))
 >>> print(x)
 [[20 64 23 6 66]
  [74 11 21 61 70]
  [24 47 22 22 31]]

rand() 方法还允许您指定数组的形状。以下演示生成包含 5 个随机浮点数的 1-D Array:

 >>> from numpy import random
 >>> x = random.rand(5)
 >>> print(x)
 [0.63254731 0.0275278 0.83592219 0.41890601 0.84496798]

生成有 3 行的 2-D Array, cada linha contém 5 个随机数:

 >>> from numpy import random
 >>> x = random.rand(3, 5)
 >>> print(x)
 [[0.51798216 0.70541454 0.03600922 0.2279383 0.2184512 ]
  [0.91734846 0.07877026 0.75949221 0.7876666 0.20983625]
  [0.25935065 0.37637584 0.7793815 0.65035139 0.66673048]]

choice() 从数组生成随机数

方法使您可以基于值数组生成随机值。 方法将数组作为参数,并随机返回其中一个值。

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

choice() 方法还允许您返回一个值数组。请添加一个 size 参数以指定数组的形状。生成由数组参数(3、5、7 和 9)中的值组成的二维数组:

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