Днес ще споделя как работи пакетът Numpy в Python.

Numpy е алтернатива на Python List, но с няколко предимства. Докато Python List поддържа различни функционалности, за Data Science не е възможно да работи върху огромен списък от данни. Numpy поддържа различни математически операции над колекции с висока скорост.

Например, имаме два списъка

breadths=[5,2,6,8,23]
lengths= [1,8,5,3,2]

Искаме да умножим всеки елемент от списъка с ширини със съответния елемент от списъка с дължини.

new_list= breadths * lengths // TypeError: can’t multiply sequence by non-int of type ‘list’.. Blah blah blah

Този израз хвърля грешка. Не можем да работим директно със списъци. Трябва да преминем през всеки елемент от двата списъка и да извършим операция, която е доста по-скъпа, ако размерът на списъка е огромен.

С пакета Numpy обаче можем да извършим тази операция ефективно.

import numpy as np
np_breadth= np.array(breadths)// converting list into numpy array
np_length = np.array(lengths)
np_breadth * np_length
Out: array([ 5, 16, 30, 24, 46])
print(type(np_breadth))
Out: <class 'numpy.ndarray'>

Едно нещо, което трябва да запомните, масивът numpy може да съдържа само един тип данни.

Python_list + Python_list добавя един списък към друг, докато numpy_array + numpy_array не го прави. Той сумира елементите на един масив numpy със съответния елемент в друг масив точно както при горното умножение.

Друга характеристика на масива numpy е начинът, по който можем да подмножим списъка numpy. Нека вземем списък от 10 души с теглото им в кг.

weight=[50,60,34,45,71,76,22,89,90,89]
np_weight= np.array(weight)

Можем да създадем булев масив numpy, където елементите на масива трябва да са верни, ако теглото на съответните хора е повече от 70. Можем да използваме оператора › за това.

weight_greater_than_70_bool=np_weight > 70
weight_greater_than_70_bool
Out: array([False, False, False, False, True, True, False, True, True,True])

Сега можем да отпечатаме масив numpy, който съдържа теглото на хора над 70 години

np_weight[weight_greater_than_70_bool]
Out: array([71, 76, 89, 90, 89])

2D масив Numpy

Можем да създадем двуизмерен масив numpy (списък от списъци), използвайки пакет numpy.

np_2d= np.array([[1.73,1.68,3,1.89,1.79],
                 [65.3,23.4,12.3,3,12.3]])

Това е 2d numpy масив с 2 реда и 5 колони. Можем да проверим тази команда.

np_2d.shape
Out: (2, 5)

Подмножеството 2d масив е подобно на 1d масив.

np_2d[0, : ] #fetch me data from first row or 0 index
Out: array([1.73, 1.68, 3.  , 1.89, 1.79])
np_2d[0:2] #fetch me a data from first row, third column or 0 idexed row and 2 indexed column
Out: 3.0
np_2d[:,1:3] //fetch me data from all rows and column indexed 1 to 2
Out: array([[ 1.68, 3. ],
            [23.4 , 12.3 ]])

Статистика на Numpy

Ето основната статистическа функция, която можете да приложите с numpy.

x= [1,4,8,10,12]
np.mean(x)
Out:7.0
np.median(x)
Out:8.0
np.sum(x)
Out:35
np.product(x)
Out:3840

Толкова за днес. Ще продължа пътуването си в Data Science чрез други публикации. Благодаря