2010-01-04 21 views
6

Potrzebuję dodać kolumnę i wiersz do istniejącej tablicy numpy w pozycji zdefiniowanej tak jak ja. wybaczenie za mój zwykły angielski.Jak dodać dodatkowy wiersz i kolumnę do tablicy?

+2

to potrzebuje trochę więcej informacji –

+1

jaką szyk? lista list, array.array lub numpy.array? –

+2

-1: Bez kodu ... –

Odpowiedz

18

Zakładam, że twoja kolumna i wiersze to tylko lista list?

Oznacza to, że masz następujące?

L = [[1,2,3], 
    [4,5,6]] 

Aby dodać kolejny wiersz, użyj metody dołączania do listy.

L.append([7,8,9]) 

dając

L = [[1,2,3], 
    [4,5,6], 
    [7,8,9]] 

Aby dodać kolejną kolumnę, trzeba by pętli na każdym rzędzie. Łatwym sposobem na to jest ze zrozumieniem listy.

L = [x + [0] for x in L] 

dając

L = [[1,2,3,0], 
    [4,5,6,0]] 
+0

i przekonwertować to do tablicy wystarczy zrobić tablicę (lst)? –

+1

To powinno zadziałać. Prawdopodobnie jest lepszy sposób na zrobienie tego za pomocą numpy, ale twoje pierwotne pytanie tego nie określało. –

+0

dziękuję za odpowiedź – ricardo

6

Istnieje wiele sposobów, aby to zrobić w numpy, ale nie wszystkie z nich pozwalają dodać wiersz/kolumnę w tablicy docelowej na żadnego lokalizację (np append zezwala tylko na dodawanie po ostatnim rzędzie/kolumnie). Jeśli chcesz jedną metodę/funkcję dołączyć albo wiersza lub kolumny w dowolnej pozycji w tablicy docelowej, pójdę z „wkładką”:

T = NP.random.randint(0, 10, 20).reshape(5, 4) 
c = NP.random.randint(0, 10, 5) 
r = NP.random.randint(0, 10, 4) 
# add a column to T, at the front: 
NP.insert(T, 0, c, axis=1) 
# add a column to T, at the end: 
NP.insert(T, 4, c, axis=1) 
# add a row to T between the first two rows: 
NP.insert(T, 2, r, axis=0) 
Powiązane problemy