Mam numpy_array. Coś jak [ a b c ]
.
A potem chcę dołączyć go do innej tablicy NumPy (tak jak tworzymy listę list). Jak tworzymy tablicę tablic NumPy zawierającą tablice NumPy?
Bez powodzenia próbowałem wykonać następujące czynności
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> a
array([1, 2, 3])
Odpowiedzi:
albo to:
źródło
vstack()
pomysł Svena . Wiesz, że możesz utworzyć tablicę za pomocąarray([[1,2,3],[2,3,4]])
, prawda?numpy.vstack
może akceptować więcej niż 2 tablice w argumencie sekwencji. Dlatego jeśli chcesz połączyć więcej niż 2 tablice, vstack jest bardziej przydatny.concatenate
może również przyjmować wiele tablicCóż, komunikat o błędzie mówi wszystko: tablice NumPy nie mają
append()
metody. Jest jednak darmowa funkcjanumpy.append()
:Spowoduje to utworzenie nowej tablicy zamiast mutacji
M
w miejscu. Zauważ, że użycienumpy.append()
wiąże się z kopiowaniem obu tablic. Uzyskasz lepszą wydajność kodu, jeśli użyjesz tablic NumPy o stałej wielkości.źródło
numpy.vstack()
.Możesz użyć
numpy.append()
...Nie utworzy to dwóch oddzielnych tablic, ale dołączy dwie tablice do jednej tablicy jednowymiarowej.
źródło
Sven powiedział wszystko, po prostu bądź bardzo ostrożny z powodu automatycznych korekt typu po wywołaniu append.
Jak widać na podstawie zawartości, dtype przeszedł z int64 do float32, a następnie do S1
źródło
Znalazłem ten link, szukając czegoś nieco innego, jak zacząć dołączanie obiektów tablicy do pustej tablicy numpy, ale bezskutecznie wypróbowałem wszystkie rozwiązania na tej stronie.
Potem znalazłem to pytanie i odpowiedź: Jak dodać nowy wiersz do pustej tablicy numpy
Istota tutaj:
Następnie możesz użyć konkatenacji, aby dodać wiersze w następujący sposób:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Zobacz też https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
źródło
Właściwie zawsze można stworzyć zwykłą listę tablic numpy i przekonwertować ją później.
źródło
Miałem ten sam problem i nie mogłem skomentować odpowiedzi @Sven Marnach (za mało rep, ojej, pamiętam, kiedy Stackoverflow po raz pierwszy zaczął ...).
Dodanie listy liczb losowych do macierzy 10 x 10.
Za pomocą np.zeros () tworzona jest tablica zawierająca 1 x 10 zer.
Następnie za pomocą np.random tworzona jest lista 10 liczb losowych i przypisywana do randomList. Pętla ustawia go na 10 wysokości. Musimy tylko pamiętać, aby usunąć pierwszy pusty wpis.
Więc w funkcji:
tablica 7 x 7 zawierająca liczby losowe 0 - 1000
źródło
Jeśli rozumiem twoje pytanie, oto jeden sposób. Powiedz, że masz:
więc oto kod ...
Który prowadzi do:
źródło
Wypróbuj ten kod:
Możesz także użyć tablicy zamiast „a”
źródło