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


21.09.2018

Kolor razy 6

Kyocera ECOSYS i TASKalfa
18.09.2018

Na ataki piątej generacji

Check Point 23900
14.09.2018

UHD dla pro

Samsung UJ59
11.09.2018

Ochrona dla firm

ESET Security Management Center
07.09.2018

Skanowanie podatności

Beyond Security AVDS
04.09.2018

Open source do automatyzacji...

Red Hat Ansible Engine 2.6
28.08.2018

CPU dla stacji roboczych

Intel Xeon E-2100
24.08.2018

Macierze do DC

Infortrend EonStor GS 5000
21.08.2018

Elastyczne PoE

Netgear GS11xxx

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.

Artykuł pochodzi z miesięcznika: IT Professional

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

.

Transmisje online zapewnia: StreamOnline

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