Lista para conversão de array para usar a função ravel ()

109

Eu tenho uma lista em python e quero convertê-la em uma matriz para poder usar a ravel()função.

user2229953
fonte
2
Por favor, tente responder a pedidos de esclarecimentos e melhorar suas perguntas em vez de gerar muitas perguntas não muito boas. Finalmente, leia atentamente esta resposta . Acho que resolve seu grande problema ...
jorgeca

Respostas:

237

Use numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
A. Rodas
fonte
25
Na verdade, myarray = np.array(mylist)deve ser o suficiente.
fgb
11
bem, um array é mais seguro, pois não copia arrays, mas simplesmente os retorna, por isso é um bom hábito usá-lo, a menos que se queira uma cópia dos dados originais
EnricoGiampieri
1
@EnricoGiampieri, justo, mas você não precisaria obter um array com isso, não importa o quê? Acho que não entendo como você não obteria nenhum dos comandos para gerar um novo objeto de matriz.
fgb
ambos os comandos criarão um novo array a partir de uma lista, isso é certo, mas frequentemente o objetivo é converter uma entrada em um formato específico para aplicar determinado método, e isso se parece mais com o caso do OP. usar um array é um bom hábito, a menos que se tenha certeza de que uma nova cópia é necessária. simplesmente digitar arrayé suficiente, mas por que deixar escapar a possibilidade de educar o OP a algum bom hábito enquanto estamos aqui?
EnricoGiampieri,
Só queria dizer que @fgb propôs uma solução adequada. a função '.asarray' retorna um objeto numpy enquanto '.array retorna uma matriz diretamente. De qualquer forma, obrigado a vocês dois!
Adrian Grzywaczewski
7

crie um array int e uma lista

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)
Uszkai Attila
fonte
o que o "i" representa? e o que deveria ser para str?
Dany Y
6

Eu queria uma maneira de fazer isso sem usar um módulo extra. Primeiro, transforme a lista em string e, em seguida, anexe a uma matriz:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
D_C
fonte
Não é possível editar um erro de digitação: a primeira linha deveria serdataset_list = ';'.join(input_list)
Alex Poca
2

Se tudo o que você quiser é chamar ravelem sua lista (aninhada, suponho?), Você pode fazer isso diretamente, numpyfará o casting para você:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

Também vale a pena mencionar que você não precisa passar por numpynada .

Paul Panzer
fonte
-1

Use o seguinte código:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)
Vinay
fonte
-13

se a variável b tiver uma lista, você pode simplesmente fazer o seguinte:

crie uma nova variável "a" como: em a=[] seguida, atribua a lista a "a" como:a=b

agora "a" tem todos os componentes da lista "b" no array.

então você converteu com sucesso a lista em array.

Mayank Sharma
fonte
8
Na verdade, não ... isso está completamente errado. Tudo o que você terá são duas variáveis ​​apontando para a mesma lista, não uma matriz numpy.
Ajean