Casa > V > Você Só Pode Converter Um Array De Tamanho 1 Para Um Escalar Python?

Você só pode converter um array de tamanho 1 para um escalar Python?

A pergunta é particularmente vaga, mas tentarei responder o melhor que puder. 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. Dependendo da linguagem, o índice do primeiro elemento do array é 0 ou 1; para Python, é 0. Se você tem certeza absoluta de que o array tem um elemento, então você pode acessá-lo diretamente e salvar esse valor em uma variável. Se o array tem mais de um elemento, você ainda pode acessar o primeiro elemento e salvá-lo diretamente, mas isso pode não ser o comportamento desejado.

Isso levanta a questão do que significa "converter" um array para um escalar. Vou assumir aqui por "escalar" que queremos dizer algo do tipo que está armazenado no array. Quando esse array tem tamanho 1, há uma conotação óbvia de que o escalar resultante deve compartilhar seu valor com o valor no array. No entanto, para arrays de tamanho maior, isso não é necessariamente verdade.

Por exemplo, para um array de inteiros não assinados de tamanho n, há pelo menos duas maneiras que ambas parecem naturais para converter esse array em um escalar.

P>Primeiro é concatenar os elementos, e.g.

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

Segundo é calcular o comprimento do quadrado do array como um vetor (também conhecido como soma dos quadrados), por exemplo.

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

Para inteiros assinados, poderíamos dizer o mesmo sobre a soma e a soma dos quadrados. Para cordas, concatenação e união com um caractere de espaço em branco. Alguns destes exemplos alinham com o tamanho 1, mas não todos. Por exemplo, a soma dos quadrados de [3] é 9, mas apenas puxar o elemento de [3] dá 3.

Por último, note que nenhuma dessas operações é reversível para tamanho > 1. Ou seja, dado o valor resultante, não há como reconstruir o array original. A razão deve ser óbvia: um array contém dados que cabem em múltiplas caixas do tamanho do escalar, enquanto o escalar é apenas grande o suficiente para um, então pelo princípio do "pombo do céu" devemos ter uma relação de muitos para um entre arrays de tamanho >1 e escalares.

De Foulk

What does this line of code mean (python): L [::2], L [1::2] = L [1::2], L [::2]? :: Como podemos converter um array unidimensional para um array bidimensional em Python?