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.


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)

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)

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)

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 .


-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)

-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ę.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.