Днес ще споделя как работи пакетът 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 чрез други публикации. Благодаря