To łatwe pytanie, ale powiedz, że mam macierz MxN. Chcę tylko wyodrębnić określone kolumny i zapisać je w innej tablicy numpy, ale otrzymuję nieprawidłowe błędy składniowe. Oto kod:
extractedData = data[[:,1],[:,9]].
Wygląda na to, że powyższa linia powinna wystarczyć, ale chyba nie. Rozejrzałem się, ale nie mogłem znaleźć nic rozsądnego pod względem składni w odniesieniu do tego konkretnego scenariusza.
Zakładając, że chcesz uzyskać kolumny 1 i 9 z tym fragmentem kodu, powinno to być:
źródło
jeśli chcesz wyodrębnić tylko niektóre kolumny:
jeśli chcesz wykluczyć określone kolumny:
źródło
Jedną rzeczą, na którą chciałbym zwrócić uwagę, jest to, że jeśli liczba kolumn, które chcesz wyodrębnić, wynosi 1, wynikowa macierz nie byłaby macierzą Mx1, jak można się spodziewać, ale zamiast tego tablicą zawierającą elementy wyodrębnionej kolumny.
Aby przekonwertować go na Matrix , należy zastosować metodę reshape (M, 1) na wynikowej tablicy.
źródło
data[:, 8:9]
. To zajmuje osiem kolumn, ale nie usuwa dodatkowego wymiaru.Właśnie:
Kolumny nie muszą być w kolejności:
źródło
Jeszcze jedna rzecz, na którą należy zwrócić uwagę przy wyborze kolumn z tablicy ND za pomocą takiej listy:
Jeśli usuwasz wymiar (na przykład wybierając tylko jeden wiersz), wynikowa tablica zostanie (z jakiegoś powodu) permutowana . Więc:
źródło
Możesz użyć :
extracted_data = data.ix[:,['Column1','Column2']]
źródło
Myślę, że rozwiązanie tutaj nie działa już z aktualizacją wersji Pythona, jednym ze sposobów na zrobienie tego z nową funkcją Pythona jest:
co daje pożądany efekt.
Dokumentację można znaleźć tutaj: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
źródło
możesz również użyć extractData = data ([:, 1], [:, 9])
źródło