La funzione ones() di numpy in python

La funzione ones() del modulo numpy mi permette di creare una matrice o un vettore con tutti gli elementi uguali a uno.

import numpy as np
np.ones(x [, dtype])

  • Il parametro x è la dimensione dell'oggetto array da creare. Ad esempio (2,3) per creare una matrice con due righe e tre colonne.
  • Il parametro opzionale dtype, invece, mi consente di definire il tipo di dato ( intero, reale, ecc. ). Se non è indicato, la funzione crea di default gli elementi come numeri reali.

    Un esempio pratico

    Voglio creare una matrice 2x3.

    Importo il modulo numpy nell'interprete python.

    import numpy as np

    Poi creo un oggetto array bidimensionale con 2 righe e 3 colonne.

    m=np.ones((2,3))

    Il contenuto dell'oggetto m è una matrice 2x3 con tutti valori uno in formato reale.

    array([[1., 1., 1.],
    [1., 1., 1.]])

    Equivale alla matrice

    $$ \begin{pmatrix} 1.0 & 1.0 & 1.0 \\ 1.0 & 1.0 & 1.0 \end{pmatrix} $$

    E per avere dei numeri interi negli elementi della matrice?

    Per creare una matrice con tutti gli elementi interi,indico il tipo di dato esplicitamente nel comando ones().

    m=np.ones((2,3), dtype=int)

    Ora gli elementi sono interi

    array([[1, 1, 1],
    [1, 1, 1]])

    Si tratta di una matrice 2x3 con tutti gli elementi interi uguali a uno.

    $$ \begin{pmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \end{pmatrix} $$

    E per creare una matrice con valori diversi da uno?

    Con un semplice escamotage la funzione ones() mi consente di ottenere nuove matrici anche con valori diversi da uno.

    Mi basta moltiplicare la matrice m per un numero reale.

    m=np.ones((2,3), dtype=int)
    m*=7

    In questo modo ottengo una matrice con tutti gli elementi uguali a 7.

    array([[7, 7, 7],
    [7, 7, 7]])

    E' una semplice operazione di algebra lineare basata sul prodotto di una matrice per uno scalare.

    $$ 7 \cdot \begin{pmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \end{pmatrix} = \begin{pmatrix} 7 & 7 & 7 \\ 7 & 7 & 7 \end{pmatrix} $$

    In alternativa, per ottenere lo stesso risultato finale potrei usare la funzione full() di numpy ma questa è un'altra storia.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Numpy

    I metodi e le funzioni