Python Урок за NumPy за начинаещи: Учете с примери
В какво е NumPy Python?
numpy е библиотека с отворен код, достъпна в Python, който помага в математическото, научното, инженерното и програмирането в областта на науката за данни. Това е много полезна библиотека за извършване на математически и статистически операции Python. Работи перфектно за многомерни масиви и умножение на матрици. Лесно се интегрира с C/C++ намлява Fortran.
За всеки научен проект NumPy е инструментът, който трябва да знаете. Създаден е да работи с N-измерен масив, линейна алгебра, произволни числа, преобразуване на Фурие и др.
NumPy е език за програмиране, който работи с многоизмерни масиви и матрици. В допълнение към масивите и матриците, NumPy поддържа голям брой математически операции. В тази част ще прегледаме основните функции, които трябва да знаете за урока за "TensorFlow-
Защо да използвате NumPy?
NumPy е ефективна памет, което означава, че може да обработва огромното количество данни, по-достъпни от всяка друга библиотека. Освен това NumPy е много удобен за работа, особено за умножение и преоформяне на матрици. Освен това NumPy е бърз. Всъщност TensorFlow и Scikit се научават да използват масив NumPy за изчисляване на умножението на матрицата в задната част.
Как да инсталирате NumPy
За да инсталирате библиотека NumPy, моля, вижте нашия урок Как да инсталирате TensorFlow. NumPy се инсталира по подразбиране с Anaconda.
В отдалечен случай NumPy не е инсталиран-
Можете да инсталирате NumPy с помощта на Anaconda:
conda install -c anaconda numpy
- In Jupyter Бележник:
import sys !conda install --yes --prefix {sys.prefix} numpy
Импортирайте NumPy и проверете версията
Командата за импортиране на numpy е:
import numpy as np
Горният код преименува пространството от имена на Numpy на np. Това ни позволява да поставим префикс на функцията, методите и атрибутите на Numpy с „np“, вместо да въвеждаме „numpy“. Това е стандартният пряк път, който ще намерите в литературата за numpy
За да проверите вашата инсталирана версия на NumPy, използвайте командата по-долу:
print (np.__version__)
Изход:
1.18.0
Какво е Python NumPy масив?
NumPy масивите са малко подобни Python списъци, но същевременно много различни. За тези от вас, които са нови в темата, нека изясним какво точно представлява и за какво е полезно.
Както името издава, масивът NumPy е централна структура от данни на библиотеката numpy. Името на библиотеката всъщност е съкратено от „Numeric Python” или „Числен Python".
Създаване на масив NumPy
Най-лесният начин да създадете масив в Numpy е да използвате Python списък
myPythonList = [1,9,8,3]
За да конвертирате списъка на python в масив numpy, като използвате обекта np.array.
numpy_array_from_list = np.array(myPythonList)
За показване на съдържанието на списъка
numpy_array_from_list
Изход:
array([1, 9, 8, 3])
На практика не е необходимо да се декларира a Python списък. Операцията може да се комбинира.
a = np.array([1,9,8,3])
ЗАБЕЛЕЖКА: Документацията на Numpy посочва използването на np.ndarray за създаване на масив. Това обаче е препоръчителният метод.
Можете също да създадете масив numpy от Tuple.
математически Operaции на масив
Можете да извършвате математически операции като събиране, изваждане, деление и умножение върху масив. Синтаксисът е името на масива, последвано от операцията (+.-,*,/), последвано от операнда
Пример:
numpy_array_from_list + 10
Изход:
array([11, 19, 18, 13])
Тази операция добавя 10 към всеки елемент от масива numpy.
Форма на масив
Можете да проверите формата на масива с формата на обекта, предшествана от името на масива. По същия начин можете да проверите типа с dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Цяло число е стойност без десетичен знак. Ако създадете масив с десетичен знак, тогава типът ще се промени на float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 размерен масив
Можете да добавите измерение със запетая
Имайте предвид, че трябва да е в скобата []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 размерен масив
По-високото измерение може да бъде конструирано, както следва:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Цел | код |
---|---|
Създаване на масив | масив ([1,2,3]) |
отпечатайте формата | масив([.]).форма |
Какво е numpy.zeros()?
numpy.zeros() или np.нули Python се използва за създаване на матрица, пълна с нули. numpy.zeros() в Python може да се използва, когато инициализирате теглата по време на първата итерация в TensorFlow и други статистически задачи.
Синтаксис на функцията numpy.zeros().
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Параметри
Тук
- Форма: е формата на нулевия масив numpy
- Dtype: е типът данни в numpy нули. Не е задължително. Стойността по подразбиране е float64
- Поръчка: По подразбиране е C, което е основен стил на ред за numpy.zeros() в Python.
Python numpy.zeros() Пример
import numpy as np np.zeros((2,2))
Изход:
array([[0., 0.], [0., 0.]])
Пример за numpy нула с Datatype
import numpy as np np.zeros((2,2), dtype=np.int16)
Изход:
array([[0, 0], [0, 0]], dtype=int16)
Какво е numpy.ones()?
функция np.ones(). се използва за създаване на матрица, пълна с единици. numpy.ones() в Python може да се използва, когато инициализирате теглата по време на първата итерация в TensorFlow и други статистически задачи.
Python numpy.ones() Синтаксис
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Параметри
Тук
- Форма: е формата на np.ones Python Array
- Dtype: е типът данни в numpy ones. Не е задължително. Стойността по подразбиране е float64
- Поръчка: По подразбиране е C, което е основен стил на ред.
Python numpy.ones() 2D масив с пример за тип данни
import numpy as np np.ones((1,2,3), dtype=np.int16)
Изход:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape() функция в Python
Python Преоформяне на NumPy функцията се използва за оформяне на масив, без да се променят неговите данни. В някои случаи може да се наложи да промените формата на данните от широки към дълги. Можете да използвате функцията np.reshape за това.
Синтаксис на np.reshape()
numpy.reshape(a, newShape, order='C')
Тук
a: Масив, който искате да преоформите
нова форма: Новите желания оформят
Поръчка: По подразбиране е C, което е основен стил на ред.
Пример за NumPy Reshape
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Изход:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() в Python
Python NumPy Flatten се използва за връщане на копие на масива в едно измерение. Когато имате работа с някаква невронна мрежа като convnet, трябва да изравните масива. Можете да използвате функциите np.flatten() за това.
Синтаксис на np.flatten()
numpy.flatten(order='C')
Тук
Поръчка: По подразбиране е C, което е основен стил на ред.
Пример за NumPy Flatten
e.flatten()
Изход:
array([1, 2, 3, 4, 5, 6])
В какво е numpy.hstack(). Python?
Numpy.hstack е функция в Python който се използва за хоризонтално подреждане на последователности от входни масиви, за да се направи единичен масив. С функцията hstack() можете да добавяте данни хоризонтално. Това е много удобна функция в NumPy.
Нека изучаваме hstack в Python с пример:
Пример:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Изход:
Horizontal Append: [1 2 3 4 5 6]
В какво е numpy.vstack(). Python?
Numpy.vstack е функция в Python който се използва за вертикално подреждане на последователности от входни масиви, за да се направи единичен масив. С функцията vstack() можете да добавяте данни вертикално.
Нека го проучим с пример:
Пример:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Изход:
Vertical Append: [[1 2 3] [4 5 6]]
След като изучихме NumPy vstack и hstack, нека научим пример за генериране на произволни числа в NumPy.
Генериране на случаен принцип Numbers използвайки NumPy
За да генерирате произволни числа за Гаусово разпределение, използвайте:
numpy.random.normal(loc, scale, size)
Тук
- Място: средното. Центърът на разпространение
- Мащаб: стандартно отклонение.
- Размер: брой връщания
Пример:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Ако се начертае, разпределението ще бъде подобно на следния график
Функция NumPy Asarray
Функцията asarray() се използва, когато искате да конвертирате вход в масив. Входът може да бъде списъци, кортеж, ndarray и т.н.
Синтаксис:
numpy.asarray(data, dtype=None, order=None)[source]
Тук
данни: Данни, които искате да конвертирате в масив
dtype: Това е незадължителен аргумент. Ако не е указано, типът данни се извежда от входните данни
Поръчка: По подразбиране е C, което е основен стил на ред. Друг вариант е F (в стил Фортан)
Пример:
Помислете за следната 2-D матрица с четири реда и четири колони, запълнени с 1
import numpy as np A = np.matrix(np.ones((4,4)))
Ако искате да промените стойността на матрицата, не можете. Причината е, че не е възможно да се промени копие.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Матрицата е неизменна. Можете да използвате asarray, ако искате да добавите модификация в оригиналния масив. Нека да видим дали настъпва някаква промяна, когато искате да промените стойността на третите редове със стойност 2.
np.asarray(A)[2]=2 print(A)
Обяснение на кода:
np.asarray(A): преобразува матрицата A в масив
[2]: изберете третите редове
Изход:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Какво е numpy.arange()?
numpy.arange() е вградена функция numpy, която връща обект ndarray, съдържащ равномерно разпределени стойности в рамките на определен интервал. Например искате да създадете стойности от 1 до 10; можете да използвате np.arange() в Python функция.
Синтаксис:
numpy.arange(start, stop, step, dtype)
Python Параметри за подреждане на NumPy:
- Начало: Начало на интервала за np.arange in Python функция.
- Спиране: Край на интервала.
- Стъпка: Разстояние между стойностите. Стъпката по подразбиране е 1.
- Dtype: е тип изходен масив за подреждане на NumPy Python.
Пример:
import numpy np np.arange(1, 11)
Изход:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Пример:
Ако искате да промените стъпката в тази функция за подреждане на NumPy в Python Например, можете да добавите трето число в скобите. Това ще промени стъпката.
import numpy np np.arange(1, 14, 4)
Изход:
array([ 1, 5, 9, 13])
Функция NumPy Linspace
Linspace дава равномерно разпределени проби.
Синтаксис:
numpy.linspace(start, stop, num, endpoint)
Тук
- Начало: Начална стойност на последователността
- Спиране: Крайна стойност на последователността
- В: Брой проби за генериране. По подразбиране е 50
- Endpoint: Ако е True (по подразбиране), стоп е последната стойност. Ако е False, стоп стойността не е включена.
Пример:
Например, може да се използва за създаване на 10 стойности от 1 до 5, разположени равномерно.
import numpy as np np.linspace(1.0, 5.0, num=10)
Изход:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Ако не искате да включите последната цифра в интервала, можете да зададете крайна точка на false
np.linspace(1.0, 5.0, num=5, endpoint=False)
Изход:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy функция в Python
LogSpace връща равномерни числа в лог скала. Logspace има същите параметри като np.linspace.
Синтаксис:
numpy.logspace(start, stop, num, endpoint)
Пример:
np.logspace(3.0, 4.0, num=4)
Изход:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
И накрая, ако искате да проверите размера на паметта на елемент в масив, можете да използвате itemsize
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Изход:
16
Всеки елемент отнема 16 байта.
Индексиране и нарязване Python
Нарязването на данни е тривиално с numpy. Ще разделим матрицата "e". Имайте предвид, че в Python, трябва да използвате скобите, за да върнете редовете или колоните
Пример:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Не забравяйте, че с numpy първият масив/колона започва от 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Изход:
First row: [1 2 3] Second row: [4 5 6]
In Python, като много други езици,
- Стойностите преди запетаята означават редовете
- Стойността на правата означава колоните.
- Ако искате да изберете колона, трябва да добавите : преди индекса на колоната.
- : означава, че искате всички редове от избраната колона.
print('Second column:', e[:,1])
Second column: [2 5]
За да върнете първите две стойности на втория ред. Използвате : за да изберете всички колони до втората
## Second Row, two values print(e[1, :2]) [4 5]
Статистически функции в Python
NumPy има доста полезни статистически функции за намиране на минимално, максимално, процентилно стандартно отклонение и дисперсия и т.н. от дадените елементи в масива. Функциите са обяснени по следния начин −
Numpy е оборудван със стабилната статистическа функция, както е посочено по-долу
функция | numpy |
---|---|
Min | np.min() |
макс | np.max() |
Означава | np.mean() |
Медиана | np.медиана() |
Стандартно отклонение | np.std() |
Разгледайте следния масив:
Пример:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Изход:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Пример за статистическа функция NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Изход:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Какво е numpy точков продукт?
Numpy.dot продукт е мощна библиотека за матрични изчисления. Например, можете да изчислите точковия продукт с np.dot. Numpy.dot product е точковото произведение на a и b. numpy.dot() в Python борави с 2D масиви и извършва матрични умножения.
Синтаксис:
numpy.dot(x, y, out=None)
параметри
Тук
x, y: Входни масиви. x и y и двете трябва да са 1-D или 2-D, за да работи функцията np.dot()
от: Това е изходният аргумент за скаларен 1-D масив, който трябва да бъде върнат. В противен случай трябва да се върне ndarray.
Връщане
Функцията numpy.dot() в Python връща точково произведение на два масива x и y. Функцията dot() връща скалар, ако x и y са 1-D; в противен случай връща масив. Ако е дадено 'out', то се връща.
Рейзовете
Точков продукт в Python поражда изключение ValueError, ако последното измерение на x няма същия размер като последното измерение на y.
Пример:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Изход:
14
Матрично умножение в Python
Функцията Numpy matmul() се използва за връщане на матричния продукт на 2 масива. Ето как работи
1) 2-D масиви, връща нормален продукт
2) Размери > 2, продуктът се третира като стек от матрица
3) 1-D масив първо се повишава до матрица и след това продуктът се изчислява
Синтаксис:
numpy.matmul(x, y, out=None)
Тук
x, y: Входни масиви. скалари не са разрешени
от: Това е незадължителен параметър. Обикновено изходът се съхранява в ndarray
Пример:
По същия начин можете да изчислите умножение на матрици с np.matmul
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Изход:
array([[19, 22], [43, 50]])
определящ
Не на последно място, ако трябва да изчислите детерминантата, можете да използвате np.linalg.det(). Имайте предвид, че numpy се грижи за измерението.
Пример:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Изход:
-2.000000000000005
Oбобщение
- Python е библиотека с отворен код, достъпна в Python, който помага в математиката, науката, инженерството и програмиране в науката за данни.
- numpy.zeros() или np.zeros Python се използва за създаване на матрица, пълна с нули.
- numpy.ones() в Python може да се използва, когато инициализирате теглата по време на първата итерация в TensorFlow и други статистически задачи.
- Python Функцията NumPy Reshape се използва за оформяне на масив, без да се променят неговите данни.
- Python Функцията NumPy Flatten се използва за връщане на копие на масива в едно измерение.
- Numpy.hstack е функция в Python който се използва за хоризонтално подреждане на последователности от входни масиви, за да се направи единичен масив.
- Numpy.vstack е функция в Python който се използва за вертикално подреждане на последователности от входни масиви, за да се направи единичен масив.
- numpy.arange() е вградена функция numpy, която връща обект ndarray, съдържащ равномерно разпределени стойности в рамките на определен интервал.
- Продуктът Numpy.dot е мощна библиотека за матрични изчисления.
- Функцията Numpy matmul() се използва за връщане на матричния продукт на 2 масива.