Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



14.05.2019

Bezpłatna konferencja OSEC...

Jako patron medialny serdecznie zapraszamy na bezpłatną konferencję OSEC Forum 2019, któa...
23.04.2019

Optymalizacja zużycia chmury

HPE GreenLake Hybrid Cloud
23.04.2019

Zarządzanie wydajnością

VMware vRealize Operations 7.5
19.04.2019

Technologie open source

SUSECON 2019
19.04.2019

Wyjątkowo małe

OKI seria C800
19.04.2019

Łatwy montaż

Rittal AX i KX
18.04.2019

Technologie wideo

Avaya IX Collaboration Unit
18.04.2019

Krótki rzut

Optoma W318STe i X318STe
18.04.2019

Do mobilnej pracy

Jabra Evolve 65e

Jak zostać mistrzem danych

Data publikacji: 24-01-2018 Autor: Grzegorz Kubera

W kolejnej części cyklu prezentującego możliwości języka programowania Python w zakresie analizy i przetwarzania danych przedstawiamy operacje na danych przy użyciu NumPy, a na koniec prezentujemy krótki test sprawdzający zdobytą wiedzę.

Jednym z podstawowych zadań data scientist jest umiejętność wyodrębniania danych z poszczególnych zbiorów. Właśnie tym się teraz zajmiemy, przybliżając poszczególne komendy. Na początek uruchamiamy wiersz poleceń Anaconda Prompt z menu Start w Windows i wpisujemy komendę: 

conda install numpy

Instalujemy pakiet danych, wpisując y (od „yes”), i zatwierdzamy wybór klawiszem Enter. Następnie uruchamiamy notatnik Jupyter, wpisując:

jupyter notebook

Otwieramy notatnik w Pythonie 3 i wpisujemy komendę:

import numpy as np

Ta komenda zaimportuje NumPy jako np – będziemy mogli łatwo wpisywać komendy NumPy, posługując się skrótem np. Zaczynamy od stworzenia przykładowego obiektu typu array, na którym będziemy ćwiczyć konkretne komendy. Wpisujemy:

arr = np.arange(0,11)

Teraz możemy wyświetlić zawartość tego pojemnika na dane – umieściliśmy w nim 11 wartości, czyli po wpisaniu arr w notatniku powinniśmy zobaczyć wynik:

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

Jest to 11 wartości, włącznie z 0. Kiedy mamy już obiekt array do ćwiczeń, możemy przystąpić do wyodrębniania z niego konkretnych danych – w tym przypadku wartości ze zbioru od 0 do 10 włącznie. Aby to zrobić, wpisujemy nazwę obiektu, a następnie w nawiasach kwadratowych podajemy pozycję, która nas interesuje, albo wskazujemy ich przedział. Odpowiednio będą to komendy:

arr[8]

Wyświetla wartość o tej konkretnej nazwie, czyli w naszym przypadku jest to 8.

Wskazywanie przedziału:

arr[1:5]

Wyświetla wartości od 1 do 4, ponieważ pytamy tutaj o wartości z pozycji od pierwszej do piątej, a NumPy traktuje 0 jako pierwszą wartość. W przyszłości może się przydać również komenda wyodrębniania wartości od początku tablicy do wskazanej komórki albo od wskazanej pozycji do samego końca. W tym celu wykorzystujemy komendy:

arr[:6] (od początku do 6)
arr[6:] (od 6 do końca)

Kolejna możliwość związana z obiektami array czy też zbiorami danych to przypisywanie wskazanej części danych konkretnej wartości. Dla przykładu, możemy do komórek z przedziału od 0 do 5 wprowadzić wartość 100, wpisując komendę:

arr[0:5] = 100

Wówczas po wpisaniu arr zostanie wyświetlony wynik:

array([100, 100, 100, 100, 100, 5, 6, 7, 8, 9,10])

Można też wyodrębniać fragmenty danych z obiektów array. Do tego celu wykorzystujemy polecenie slice. Chcąc wyodrębniać kawałek pomiędzy 0 a 6, wpisujemy komendę:

slice_of_arr = arr[0:6]

Aby wyświetlić fragment obiektu, wpisujemy następnie:

slice_of_arr
które da następujący wynik:

array([0, 1, 2, 3, 4, 5])

Warto zwrócić tutaj uwagę, że wynik 0, 1, 2, 3, 4, 5 zobaczymy tylko wtedy, gdy przed wpisaniem komendy slice przywrócimy początkowe wartości tablicy array, czyli wpiszemy na nowo komendę arr = np.arange(0,11) i stworzymy obiekt od nowa. W przeciwnym razie slice_of_arr wyświetli wynik składający się niemal w całości z wartości 100, ponieważ array został wcześniej nadpisany komendą arr[0:5] = 100. Zauważmy, jak łatwo można wprowadzić małe zamieszanie w pracy z danymi – warto zwracać uwagę na to, jakie zmiany wprowadzamy. NumPy nie tworzy kopii obiektów array, w których wprowadzamy zmiany, tylko od razu je nadpisuje. Nie oznacza to jednak, że nie można tworzyć kopii tablic.


Tworzenie kopii sprowadza się do skorzystania z kolejnej komendy:

arr_copy = arr.copy()

W ten sposób po wpisaniu arr i arr_copy zobaczymy takie same wartości w dwóch odrębnych obiektach array. Postępując w ten sposób, możemy np. nie naruszać oryginalnego zbioru z danymi (arr), natomiast ćwiczyć i wprowadzać zmiany na jego kopii (arr_copy). Przykładowo: możemy przypisać wartości 50 wszystkim elementom z arr_copy, wpisując komendę:

arr_copy[:] = 50

Uzyskamy wynik: array([50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50])

Natomiast oryginalny obiekt arr pozostanie bez zmian: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

[...]

Założyciel i dyrektor generalny firmy doradczo-technologicznej, pełnił funkcję redaktora naczelnego w magazynach i serwisach informacyjnych z branży ICT. Dziennikarz z ponad 10-letnim doświadczeniem i autor książki nt. tworzenia start-upów.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"