Konwersja listy do tablicy w celu użycia funkcji ravel ()

109

Mam listę w Pythonie i chcę przekonwertować ją na tablicę, aby móc z niej korzystać ravel() funkcji.

user2229953
źródło
2
Proszę, staraj się odpowiadać na prośby o wyjaśnienia i poprawiać swoje pytania zamiast tworzyć wiele niezbyt dobrych pytań. Na koniec przeczytaj uważnie tę odpowiedź . Myślę, że to rozwiązuje twój duży problem ...
jorgeca,

Odpowiedzi:

237

Zastosowanie numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
A. Rodas
źródło
25
Właściwie myarray = np.array(mylist)powinno wystarczyć.
fgb
11
dobrze, asarray to bezpieczniejsze, ponieważ nie będzie skopiować tablice ale po prostu ich zwrotu, więc jest to dobry zwyczaj, aby go używać, chyba że jeden to z pewnością wawnt kopię oryginalnych danych
EnricoGiampieri
1
@EnricoGiampieri, uczciwie, ale czy nie musiałbyś wyciągać z tego tablicy bez względu na wszystko? Wydaje mi się, że nie rozumiem, jak nie dostaniesz żadnego polecenia do wygenerowania nowego obiektu tablicy.
fgb
obie komendy utworzą nową tablicę zaczynając od listy, to na pewno, ale często chodzi o konwersję danych wejściowych do określonego formatu, aby zastosować określoną metodę, a to wygląda bardziej jak przypadek OP. używanie tablicy jest dobrym nawykiem, chyba że ktoś jest pewien, że potrzebna jest nowa kopia. wystarczy zwykłe pisanie array, ale po co tracić możliwość nauczenia OP jakiegoś dobrego nawyku, kiedy tu jesteśmy?
EnricoGiampieri
Chciałem tylko powiedzieć, że @fgb zaproponował odpowiednie rozwiązanie. funkcja '.asarray' zwraca obiekt numpy, podczas gdy '.array zwraca bezpośrednio tablicę. W każdym razie, dzięki wam obojgu!
Adrian Grzywaczewski
7

utwórz tablicę int i listę

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
źródło
co oznacza „i”? a co powinno być dla str?
Dany Y
6

Chciałem to zrobić bez użycia dodatkowego modułu. Najpierw zamień listę na łańcuch, a następnie dołącz do tablicy:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
D_C
źródło
Nie można edytować literówki: pierwszy wiersz powinien byćdataset_list = ';'.join(input_list)
Alex Poca
2

Jeśli chcesz tylko wywołać ravelswoją (zagnieżdżoną, przypuszczam?) Listę, możesz to zrobić bezpośrednio, wykonam numpycasting za Ciebie:

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

Warto również wspomnieć, że nie musisz przejść numpyw ogóle .

Paul Panzer
źródło
-1

Użyj poniższego kodu:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)
Vinay
źródło
-13

jeśli zmienna b ma listę, możesz po prostu wykonać poniższe czynności:

utwórz nową zmienną „a” jako: a=[] następnie przypisz listę do „a” jako:a=b

teraz „a” ma wszystkie składniki listy „b” w tablicy.

więc pomyślnie przekonwertowałeś listę na tablicę.

Mayank Sharma
źródło
8
Właściwie nie ... to jest całkowicie błędne. Wszystko, co będziesz mieć, to dwie zmienne wskazujące na tę samą listę, a nie tablicę numpy.
Ajean,