Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Array Casuali | Basi di NumPy
Numpy Definitivo

book
Array Casuali

Spesso capita di dover generare un numero casuale o un array di numeri casuali. Fortunatamente, NumPy ha un modulo chiamato random specificamente per questo scopo.

Le due funzioni più comunemente usate del modulo random sono:

  • rand() ;

  • randint() .

rand()

La funzione numpy.random.rand() viene utilizzata per generare un numero float casuale o un array di numeri float casuali da una distribuzione uniforme su [0, 1).

Nota

Le parentesi quadre [ o ] nella notazione degli intervalli indicano che il valore è incluso, mentre le parentesi tonde ( o ) indicano che il valore è escluso. Ad esempio, [0, 1) significa che l'intervallo include 0 ma non 1. Non confondere questa notazione matematica con le parentesi usate nel codice — servono a scopi diversi.

I suoi unici argomenti possibili sono le dimensioni dell'array. Se non viene passato alcun argomento, rand() genera un numero float casuale (scalare).

import numpy as np
# Generating a random number
random_number = np.random.rand()
print(random_number)
# Generating a random 1D array with 5 elements
random_array = np.random.rand(5)
print(random_array)
# Generating a random 2D array (matrix) of shape 4x3
random_matrix = np.random.rand(4, 3)
print(random_matrix)
12345678910
import numpy as np # Generating a random number random_number = np.random.rand() print(random_number) # Generating a random 1D array with 5 elements random_array = np.random.rand(5) print(random_array) # Generating a random 2D array (matrix) of shape 4x3 random_matrix = np.random.rand(4, 3) print(random_matrix)
copy

Nota

Le dimensioni nella funzione rand() devono essere specificate come parametri interi separati, non come una tupla di interi. Ad esempio, rand(4, 3) è corretto, mentre rand((4, 3)) è errato.

randint()

La funzione numpy.random.randint viene utilizzata per generare un intero casuale o un array di interi casuali da una distribuzione uniforme discreta all'interno di un intervallo specificato.

I suoi tre parametri più importanti sono low (l'unico parametro richiesto), high e size. L'intervallo è [low, high) (da low inclusivo a high esclusivo). Tuttavia, se high non è specificato, allora l'intervallo è [0, low).

import numpy as np
# Generating a random integer from 0 to 3 exclusive
random_integer = np.random.randint(3)
print(random_integer)
# Generating a 1D array of random integers in [0, 5) with 4 elements
random_int_array = np.random.randint(5, size=4)
print(random_int_array)
# Generating a 1D array of random integers in [2, 5) with 4 elements
random_int_array_2 = np.random.randint(2, 5, size=4)
print(random_int_array_2)
# Generating a random 2D array of random integers in [1, 6) of shape 4x2
random_int_matrix = np.random.randint(1, 6, size=(4, 2))
print(random_int_matrix)
12345678910111213
import numpy as np # Generating a random integer from 0 to 3 exclusive random_integer = np.random.randint(3) print(random_integer) # Generating a 1D array of random integers in [0, 5) with 4 elements random_int_array = np.random.randint(5, size=4) print(random_int_array) # Generating a 1D array of random integers in [2, 5) with 4 elements random_int_array_2 = np.random.randint(2, 5, size=4) print(random_int_array_2) # Generating a random 2D array of random integers in [1, 6) of shape 4x2 random_int_matrix = np.random.randint(1, 6, size=(4, 2)) print(random_int_matrix)
copy

Nota

A differenza di rand(), specifichiamo le dimensioni dell'array tramite un singolo parametro size, passando un intero o una tupla di interi.

Compito

Swipe to start coding

  1. Crea un array 1D di numeri float casuali da una distribuzione uniforme in [0, 1) con 4 elementi per random_floats_array.
  2. Crea un array 2D di numeri float casuali da una distribuzione uniforme in [0, 1) con una forma di 3x2 per random_floats_matrix.
  3. Usa la funzione corretta per creare un array 2D di numeri interi casuali per random_integers_matrix.
  4. Imposta l'intervallo a [10, 21) (da 10 a 21 esclusivo) specificando i primi due argomenti della funzione.
  5. Imposta la forma del random_integers_matrix a 3x2 specificando il terzo argomento keyword della funzione.

Soluzione

import numpy as np
# Generate a 1D array of random floats in [0, 1) with 4 elements
random_floats_array = np.random.rand(4)
# Generate a 2D array of random floats in [0, 1) of shape 3x2
random_floats_matrix = np.random.rand(3, 2)
# Generate a 2D array of random integers in [10, 21) of shape 3x2
random_integers_matrix = np.random.randint(10, 21, size=(3, 2))
print(random_floats_array)
print(random_floats_matrix)
print(random_integers_matrix)
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 7
import numpy as np
# Generate a 1D array of random floats in [0, 1) with 4 elements
random_floats_array = ___.___.___(__)
# Generate a 2D array of random floats in [0, 1) of shape 3x2
random_floats_matrix = ___.___.___(___, ___)
# Generate a 2D array of random integers in [10, 21) of shape 3x2
random_integers_matrix = ___.___.___(___, ___, ___=___)
print(random_floats_array)
print(random_floats_matrix)
print(random_integers_matrix)

Chieda ad AI

expand
ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt