Differenze tra Flatten () e Ravel () | Numpy

| |

Abbiamo due modi simili per convertire ndarray in array unidimensionale: Flatten () e import numpy as np a = np.array ([(1,7,3,4), (3,2,4,1)]) #OUTPUT: print (a.flatten ()) # [1,7 , 3,4, 3,2,4,1] print (a.ravel ()) # [1,7,3,4,3,2,4,1]

Ecco la domanda: perché due funzioni identiche eseguire lo stesso compito?

Differenze tra Flatten () e Ravel ()

a.ravel () :
(i) Restituisce solo riferimento/vista dell’array originale
(ii) Se modifichi l’array, noterai che cambia anche il valore dell’array originale.
(iii) Ravel è più veloce di flatten() poiché non occupa memoria.
(iv) Ravel — questa è una funzione a livello di libreria.

a.flatten ( ) :
(i) Restituisce una copia dell’array originale
(ii) Se modifichi qualsiasi valore in questo array, ciò non influirà sul valore dell’array originale.
(iii) Piatto ten() è relativamente più lento di ravel() poiché occupa memoria.
(iv) Appiattisci — questo è un metodo dell’oggetto ndarray.

Controlliamo la differenza con questo codice

# codice Python per la differenziazione
# tra Smooth e Ravel in NumPy

import numpy as np


# Crea un array vuoto

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


# Stampiamo l’array

print ( "Matrice originale:" )

print (a)


# To controlla la dimensione dell’array (dimensione = 2) (e digita numpy.ndarray)

print ( "Dimensione dell’array-" " , (a.ndim))

print ( "Output per RAVEL" )

# Converti nd array in array 1D

b = a.ravel ()


# Ravel passa solo una rappresentazione dell’array originale a un array & # 39; b & # 39;

print (b)

b [ 0 ] = 1000

print (b)


# Si noti che il valore dell’array originale & # 39; un & # 39; quando un [0] [0] diventa 1000

print (a) < /p>


# Solo per controllare la dimensione, cioè 1 (e il tipo è lo stesso numpy.ndarray)

print ( "Dimensione dell’array-"" , (b.ndim))

print ( " Output per FLATTEN " )


# Converti nd array in 1D array

c = a.flatten ()


# Flatten trasferisce una copia dell’array originale in & # 39; c & # 39;

print (c)

c [ 0 ] = < codice classe ="value"> 0

print (c)


# Nota che la modifica del valore di c non influisce sul valore dell’array originale & # 39; un & # 39;

print (a)

print ( "Dimensione dell’array-" " , (c.ndim))

 OUTPUT: Array originale: [[1 2 3 4] [3 1 4 2]] Dimensione dell’array-" 2 Uscita per RAVEL [1 2 3 4 3 1 4 2] [1000 2 3 4 3 1 4 2] [[1000 2 3 4] [3 1 4 2]] Dimensione dell’array-> 1 Uscita per FLATTEN [1000 2 3 4 3 1 4 2] [0 2 3 4 3 1 4 2 ] [[1000 2 3 4] [3 1 4 2]] Dimensione dell’array-" 1 

Questo articolo è per gentile concessione di SHAURYA UPPAL .

Per favore, pubblica commenti se trovi qualcosa che non va o se desideri condividere maggiori informazioni sull’argomento discusso sopra.

Ci auguriamo che questo articolo ti abbia aiutato a risolvere il problema. Oltre a Differenze tra Flatten () e Ravel () | Numpy, controlla altri argomenti relativi a NumPy.

Vuoi eccellere in Python? Consulta la nostra recensione dei migliori corsi online Python 2022. Se sei interessato alla scienza dei dati, controlla anche come imparare a programmare in R.

A proposito, questo materiale è disponibile anche in altre lingue:



Oliver Emmerson

Milan | 2022-11-26

Forse ci sono altre risposte? Cosa significa esattamente Differenze tra Flatten () e Ravel () | Numpy significa esattamente?. Spero solo che non emerga più

Julia Williams

Prague | 2022-11-26

Grazie per le spiegazioni! Sono rimasto bloccato con Differenze tra Flatten () e Ravel () | Numpy per alcune ore, finalmente l'ho fatto 🤗. Non sono proprio sicuro che sia il metodo migliore

Dmitry Gonzalez

San Francisco | 2022-11-26

Mi stavo preparando per il mio colloquio di codifica, grazie per aver chiarito questo punto - Differenze tra Flatten () e Ravel () | Numpy in Python non è il più semplice. Tornerò domani con un feedback

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically