Indexing e slicing in un array con Numpy

Le operazioni di indexing e slicing mi pemettono di selezionare o estrarre solo una parte degli elementi di un array creato con Numpy.

  • a[n] seleziona l'elemento nell'array a alla posizione n. Negli array creati con Numpy/Python il primo elemento si trova in posione zero a[0].
  • a[-n] seleziona l'ennesimo elemento dalla fine dell'array. L'ultimo elemento dell'array ha indice -1, il penultimo -2, e via dicendo.
  • a[n,m] seleziona gli elementi dell'array a partire dall'elemeno in posizione n fino a quello in posizione m (escluso) ossia fino al m-1 esimo elemento.
  • a[:] seleziona tutti gli elementi dell'array
  • a[n:] seleziona gli elemento dell'array a partire dalla posizione n fino alla fine dell'array.
  • a[n:m:p] seleziona gli elementi dell'array dall'elemento n-esimo fino all'elemento m-esimo escluso con passo p.

    Esempio pratico

    Creo un array unidimensionale (vettore)

    >>> v=np.array([1,2,3,4,5,6,7,8,9])

    Estraggo il primo elemento dell'array

    >>> v[0]
    1

    Estraggo l'ultimo elemento dell'array

    >>> v[-1]
    9

    Estraggo il terzo elemento dell'array

    >>> v[2]
    3

    Estraggo un subarray dal secondo al penultimo elemento dell'array

    >>> v[1:-1]
    array([2, 3, 4, 5, 6, 7, 8])

    Estraggo un subarray dal secondo al penultimo elemento dell'array con passo +2

    >>> v[1:-1:2]
    array([2, 4, 6, 8])

    Estraggo i primi tre elementi dell'array

    >>> v[:3]
    array([1, 2, 3])

    Estraggo gli ultimi tre elementi dell'array

    >>> v[-3:]
    array([7, 8, 9])

    Inverto l'ordine degli elementi nell'array

    >>> v[::-1]
    array([9, 8, 7, 6, 5, 4, 3, 2, 1])

    Inverto l'ordine degli elementi nell'array usando un passo -2

    >>> v[::-2]
    array([9, 7, 5, 3, 1])

    E così via.

     


     

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

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Array con Numpy (Python)

    Alcune funzioni utili