2012-11-22 22 views
10

Mam problem z używaniem funkcji numpy.append. napisałem następującą funkcję jako część większego kawałka kodu, jednak mój błąd jest odtworzonym w folowing:Jak korzystać z funkcji numpy.append

data = [ 
     [ 
      '3.5', '3', '0', '0', '15', '6', 
      '441', 'some text', 'some more complicated data' 
     ], 
     [ 
      '4.5', '5', '1', '10', '165', '0', 
      '1', 'some other text', 'some even more complicated data' 
     ] 
     ] 

def GetNumpyArrey(self, index): 
    r = np.array([]) 
    for line in data: 
     np.append(r, float(line[index])) 

    print r 

indeksu < 6. wynik jest:

>> [] 

co czy robię źle?

Wielkie dzięki!

+2

http://stackoverflow.com/questions/5064822/numpy-how-to-add-items-into-an-array – avasal

+0

Jak zaznacza @BrenBarn, nie ma powodu, aby używać "numpy.append" tutaj. Najprościej jest najpierw przydzielić 'r' na' len (dane) '. Jeśli nie znasz długości z góry (np. Czytając z pliku), najlepiej jest zaproponować @ BrenBarn tworzenie listy i konwersję do tablicy. – DaveP

Odpowiedz

24

W przeciwieństwie do metody listy append, numpy's append nie dołącza w miejscu. Zwraca nową tablicę z dołączonymi dodatkowymi elementami. Musisz więc wykonać r = np.append(r, float(line[index])).

Jednak tworzenie tak nietypowych tablic jest nieefektywne. Lepiej jest po prostu zbudować listę jako listę w Pythonie, a na końcu utworzyć tablicę numpy.

+0

dzięki! to było bardzo przydatne! –

Powiązane problemy