Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Informatica e funzioni numpy e insert, Schemi e mappe concettuali di Informatica Giuridica

Informatica e Numpy e funzioni relative a insert

Tipologia: Schemi e mappe concettuali

2022/2023

Caricato il 09/05/2023

minaal-tomasella
minaal-tomasella 🇮🇹

4

(1)

13 documenti

1 / 55

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Laboratorio di
Programmazione e Sistemi
Multimediali
Scienze e Tecnologie Multimediali
Prof. Niki Martinel
Alcune slide di cortesia da
Dr. Saddi @ UniMi
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37

Anteprima parziale del testo

Scarica Informatica e funzioni numpy e insert e più Schemi e mappe concettuali in PDF di Informatica Giuridica solo su Docsity!

Laboratorio di

Programmazione e Sistemi

Multimediali

Scienze e Tecnologie Multimediali

Prof. Niki Martinel

Alcune slide di cortesia da

Dr. Saddi @ UniMi

NumPy

NumPy arrays (ndarray)

  • Un array NumPy ( ndarray ) è una collezione omogenea N-dimensionale di «elementi» dello stesso «tipo»
  • Il tipo può essere qualsiasi struttura arbitraria e viene specificato utilizzando il data-type
  • La differenza principale principale rispetto alle liste standard consiste nel fatto che gli elementi di un array NumPy devono essere dello stesso tipo, solitamente float o int
  • Un array può essere visto come una lista con le seguenti differenze:
    • Tutti gli elementi devono essere dello stesso tipo
    • Il numero di elementi deve essere noto a priori (cioè quando l'array viene creato) à non può essere cambiato dopo (dimensione statica)!

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities Niki Martinel

NumPy arrays (ndarray)

  • Nell'intestazione abbiamo il parametro strides : un numero che indica di quanti byte (in ogni dimensione) bisogna spostarsi per leggere il contenuto dell’array
  • Impostando questo attributo su un altro valore, cambierà il modo in cui viene vista la memoria

Niki Martinel

>>> a=np.arange(9) >>> a=a.reshape(3,3) >>> a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> a.dtype dtype('int64') >>> a.strides (24, 8)

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

  • Questa è una lista dei tipi di dati supportati per costruire un array NumPy Ndarray data types

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities Niki Martinel

Terminologia

  • L'oggetto principale di NumPy è l'array multidimensionale omogeneo chiamato Ndarray
  • Questo non è altro che una tabella di elementi (di solito numeri), tutti dello stesso tipo, indicizzati da una tupla di numeri interi positivi
  • Esempi tipici di array multidimensionali includono vettori, matrici, immagini, suoni, etc.
  • Le dimensioni sono chiamate axis , il numero di assi è il rank

Niki Martinel

>>> a = np.array([1,3,5,7,9])

>>> b = np.array([3,5,6,7,9])

>>> c = a + b

>>> print c

[4, 8, 11, 14, 18]

[7, 5, - 1] Un vettore/array rank 1 i.e. 1 axis con length 3 [ [ 1. 5 , 0. 2 , - 3. 7 ] , Un array rank 2 i.e. 2 axes , il primo con length 2 , [ 0. 1 , 1. 7 , 2. 9 ] ] il secondo con length 3 Ovvero.. una matrice con 2 righe e 3 colonne

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

Ndarray Attributes

  • Lista degli attributi più importanti di un oggetto ndarray:
  • ndarray.ndim
    • Numero di axis (dimensioni) dell'array à il rank
  • ndarray.shape
    • Dimensioni dell'array
    • Tupla di interi che indica la dimensione della matrice in ogni dimensione
    • Per una matrice con n righe e m colonne, shape sarà (n,m) à la lunghezza della tupla è quindi il rank
  • ndarray.size
    • il numero totale di elementi della matrice, pari al prodotto degli elementi di shape
  • ndarray.dtype
    • Descrive il tipo degli elementi dell'array
    • NumPy ne fornisce molti, per esempio: int8, int16, int32, int64, float16, float32, float
  • ndarray.itemsize
    • la dimensione in byte di ogni elemento dell'array
    • Ad esempio, per elementi di tipo float64, itemsize è 8 (=64/8)
  • ndarray.data
    • il buffer che contiene gli elementi effettivi dell'array
    • Normalmente, non avremo bisogno di usare questo attributo perché accederemo agli elementi di un array usando le strutture di indicizzazione

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities Niki Martinel

Creazione e uso di Ndarray

Niki Martinel

>>> a = np.array([0,1,2,3]) >>> a array([0, 1, 2, 3])

SIMPLE ARRAY CREATION

>>> type(a)

CHECKING THE TYPE

>>> a.dtype dtype(‘int32’)

NUMERIC ‘TYPE’ OF Elem.

>>> a.itemsize # per element 4

BYTES PER ELEMENT

shape returns a tuple

listing the length of the

array along each dimension.

>>> a.shape (4,) #1 row and 4 columns! >>> np.shape(a) (4,)

size reports the entire

number of elements in an

array.

>>> a.size 4 >>> np.size(a) 4

ARRAY SHAPE

ARRAY SIZE

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

  • Come accedere e modificare elementi di un array NumPy: Valorizzare un Array

Niki Martinel

>>> a.dtype dtype('int32')

assigning a float to into

an int32 array will

truncate decimal part.

>>> a[0] = 10. >>> a [10, 1, 2, 3]

fill has the same behavior

>>> a.fill(-4.8) >>> a [-4, - 4, - 4, - 4]

BEWARE OF TYPE

COERSION

set all values in an array.

>>> a.fill(0) >>> a [0, 0, 0, 0]

This also works, but may

be slower.

>>> a[:] = 1 >>> a [1, 1, 1, 1]

FILL

>>> a[0] 0 >>> a[0] = 10 >>> a [10, 1, 2, 3]

ARRAY INDEXING

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

Esempio

  • Esempio di creazione e utilizzo di ndarray tramite chiamate NumPy: modifica di un array
  • Come creare un array con degli zeri?

Niki Martinel

>>> a[1, 2] = 7 >>> print(a) [[1 2 3] [3 6 7] [2 4 6]] >>> a[:, 0] = [0, 9, 8] >>> print(a) [[0 2 3] [9 6 7] [8 4 6]] >>> b = np.zeros(5) >>> print(b) [ 0. 0. 0. 0. 0.] >>> b.dtype dtype(‘float64’) >>> n = 1000 >>> my_int_array = np.zeros(n, dtype=np.int) >>> my_int_array.dtype dtype(‘int32’)

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

Esempio

  • Esempio di creazione e utilizzo di ndarray tramite chiamate NumPy
  • Come creare un array di uno e come usare la funzione arange

Niki Martinel

>>> c = np.ones(4) >>> print(c) [ 1. 1. 1. 1. ] >>> d = np.arange(5) # just like range() >>> print(d) [0 1 2 3 4] >>> d[1] = 9. >>> print(d) # arrays keep their type even if elements changed [0 9 2 3 4] >>> print(d*0.4) # operations create a new array, with new type [ 0. 3.6 0.8 1.2 1.6] >>> d = np.arange(5, dtype=np.float) >>> print(d) [ 0. 1. 2. 3. 4.] >>> np.arange(3, 7, 0.5) # arbitrary start, stop and step array([ 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5])

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

  • Altri metodi utili forniti dalla libreria NumPy: Operationi Con Gli Array…

Niki Martinel

returns the number of bytes

used by the data portion of

the array.

>>> a.nbytes 16

BYTES OF MEMORY USED

>>> a.ndim 1

NUMBER OF DIMENSIONS

create a copy of the array

>>> b = a.copy() >>> b array([0, 1, 2, 3])

ARRAY COPY

convert a numpy array to a

python list.

>>> a.tolist() [0, 1, 2, 3]

For 1D arrays, list also

works equivalently, but

is slower.

>>> list(a) [0, 1, 2, 3]

CONVERSION TO LIST

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

a = np.array([ 0, 1, 2, 3])

>>> a

array([ 0, 1, 2, 3])

( ) Fortran-order and C-order

  • Un'istanza della classe ndarray consiste in un segmento contiguo di memoria monodimensionale, combinato con uno schema di indicizzazione che mappa gli interi nella posizione di un elemento nel segmento
  • Un segmento di memoria è intrinsecamente 1-dimensionale
    • diversi schemi per organizzare un array N-dimensionale in un blocco 1-dimensionale
  • Due schemi principali: Fortran-order (column major) e C-order (row major)
  • C e Fortran-order sono schemi di memoria contigui in cui ogni parte del blocco di memoria può essere raggiunta da qualche combinazione di indici

Niki Martinel

1 4 7 2 5 8 3 6 9 1 2 3 4 5 6 7 8 9 Fortran-order (Column major) C-order (Row major) strides=(8,24) strides=(24,8)

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities

  • Esempio: creiamo un ndarray con alcuni elementi e un ordine specifico in memoria
  • Controlliamo diverse proprietà dell'array nei due casi di ordinamento in memoria ( ) Fortran-order and C-order

Laboratorio di Programmazione e Sistemi Multimediali | Basic Funcionalities Niki Martinel