QNA > P > È Possibile Convertire Solo Un Array Di Dimensioni 1 In Uno Scalare Python?

È possibile convertire solo un array di dimensioni 1 in uno scalare Python?

La domanda è particolarmente vaga ma cercherò di rispondere al meglio delle mie capacità. To convert an array of size 1 to a scalar in python, you can use the following code:

  1. scalar = array[0] 

For any array, you have index access to each of the elements. A seconda del linguaggio, l'indice del primo elemento dell'array è 0 o 1; per Python, è 0. Se siete assolutamente sicuri che l'array abbia un elemento, allora potete accedervi direttamente e salvare quel valore in una variabile. Se l'array ha più di un elemento, potete ancora accedere al primo elemento e salvarlo direttamente, ma questo potrebbe non essere il comportamento desiderato.

Questo porta alla questione di cosa significa "convertire" un array in uno scalare. Assumerò qui che per "scalare" intendiamo qualcosa del tipo che è memorizzato nell'array. Quando quell'array ha dimensione 1, c'è un'ovvia connotazione che lo scalare risultante dovrebbe condividere il suo valore con il valore nell'array. Tuttavia, per array di dimensioni maggiori, questo non è necessariamente vero.

Per esempio, per un array di interi senza segno di dimensione n, ci sono almeno due modi che sembrano entrambi naturali per convertire quell'array in uno scalare.

Il primo è quello di concatenare gli elementi, ad es.g.

[1,5,35,2,56] -> 1536256

Secondo è calcolare la lunghezza al quadrato dell'array come un vettore (noto anche come somma dei quadrati), e.g.

[1,5,35,2,56] -> 4391

Per gli interi firmati, potremmo dire lo stesso della somma e della somma dei quadrati. Per le stringhe, concatenazione e unione con un carattere di spazio bianco. Alcuni di questi esempi si allineano con il caso della dimensione 1, ma non tutti. Per esempio, la somma dei quadrati di [3] è 9, ma semplicemente tirando fuori l'elemento da [3] si ottiene 3.

Infine, si noti che nessuna di queste operazioni è reversibile per dimensioni > 1. Cioè, dato il valore risultante, non c'è modo di ricostruire l'array originale. La ragione dovrebbe essere ovvia: un array contiene dati che entrano in più caselle della dimensione dello scalare, mentre lo scalare è grande abbastanza solo per una, quindi per il principio di pigeonhole dobbiamo avere una relazione molti a uno tra array di dimensione >1 e scalari.

Di Diaz Thorp

What does this line of code mean (python): L [::2], L [1::2] = L [1::2], L [::2]? :: Perché Python inizia dall'indice 1 quando itera un array all'indietro?
Link utili