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


06.12.2018

Niższe moce

UPS Eaton 9SX
03.12.2018

Monitory dla MŚP

AOC E1
29.11.2018

Wykrycie szkodliwego...

Sophos Intercept X Advanced
27.11.2018

Automatyzacja zabezpieczeń

Red Hat Ansible Automation
23.11.2018

Nieograniczona skalowalność

SUSE Enterprise Storage 5.5
20.11.2018

Dwa procesory Threadripper

AMD Ryzen Threadripper 2970WX i 2920X
16.11.2018

Dla biznesu i edukacji

Optoma 330USTN
13.11.2018

Superszybki dysk SSD

Patriot Evolver
09.11.2018

Ograniczenie kosztów

Canon imageRUNNER ADVANCE 525/615/715

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"