Python Учебное пособие по NumPy для начинающих: учитесь на примерах

Что такое NumPy Python?

NumPy это библиотека с открытым исходным кодом, доступная в Python, который помогает в математическом, научном, инженерном и программировании науки о данных. Это очень полезная библиотека для выполнения математических и статистических операций в Python. Он отлично работает для многомерных массивов и умножения матриц. Легко интегрируется с C/C++ и Fortran.

NumPy — это инструмент, который нужно знать для любого научного проекта. Он был создан для работы с N-мерным массивом, линейной алгеброй, случайными числами, преобразованием Фурье и т. д.

NumPy — это язык программирования, который работает с многомерными массивами и матрицами. Помимо массивов и матриц, NumPy поддерживает большое количество математических операций. В этой части мы рассмотрим основные функции, которые вам необходимо знать для обучения по 'TensorFlow».

Зачем использовать NumPy?

NumPy — это эффективность использования памяти, то есть она может обрабатывать огромные объемы данных, более доступные, чем любая другая библиотека. Кроме того, с NumPy очень удобно работать, особенно при умножении и изменении формы матриц. Кроме того, NumPy работает быстро. Фактически, TensorFlow и Scikit учатся использовать массив NumPy для вычисления умножения матриц на серверной стороне.

Как установить NumPy

Чтобы установить библиотеку NumPy, обратитесь к нашему руководству. Как установить ТензорФлоу. 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])

На практике нет необходимости декларировать 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)
Цель Code
Создать массив массив([1,2,3])
распечатать форму массив([.]).форма

Что такое numpy.zeros()?

numpy.zeros () или np.zeros Python Функция используется для создания матрицы, полной нулей. numpy.zeros() в Python может использоваться при инициализации весов во время первой итерации в TensorFlow и других статистических задачах.

Синтаксис функции numpy.zeros()

numpy.zeros(shape, dtype=float, order='C')

Python Параметры numpy.zeros()

Здесь,

  • Форма: форма нулевого массива numpy
  • Dтип: тип данных, состоящий из нулей. Это необязательно. Значение по умолчанию — float64.
  • Оформить заказ: По умолчанию используется C, который является важным стилем строки для numpy.zeros() в Python.

Python Пример numpy.zeros()

import numpy as np
np.zeros((2,2))

Вывод:

array([[0., 0.],
          [0., 0.]])

Пример нулевого значения с типом данных

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 массив
  • Dтип: тип данных в числовых значениях. Это необязательно. Значение по умолчанию — 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

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 Сгладить Функция используется для возврата копии массива в одномерном виде. Когда вы имеете дело с какой-либо нейронной сетью, такой как convnet, вам необходимо сгладить массив. Для этого вы можете использовать функции np.flatten().

Синтаксис np.flatten()

numpy.flatten(order='C')

Здесь,
Оформить заказ: по умолчанию используется стиль C, который является основным стилем строк.

Пример выравнивания NumPy

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]

Если построить график распределения, то он будет похож на следующий график

Пример создания случайного числа Numbers использование NumPy
Пример создания случайного числа Numbers использование NumPy

Функция Asarray NumPy

Функция asarray() используется, когда вы хотите преобразовать входные данные в массив. Входными данными могут быть списки, кортежи, ndarray и т. д.

Синтаксис:

numpy.asarray(data, dtype=None, order=None)[source]

Здесь,

данным: данные, которые вы хотите преобразовать в массив.

тип: Это необязательный аргумент. Если не указано, тип данных выводится из входных данных.

Оформить заказ: по умолчанию используется стиль C, который является основным стилем строк. Другой вариант — F (в стиле Фортана).

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Рассмотрим следующую двумерную матрицу с четырьмя строками и четырьмя столбцами, заполненную 2

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 в Python функции.
  • Stop: Конец интервала.
  • Шаг: Расстояние между значениями. Шаг по умолчанию — 1.
  • Dтип: тип вывода массива для диапазона 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)

Здесь,

  • Начните: Начальное значение последовательности
  • Stop: Конечное значение последовательности
  • В: Количество сэмплов для генерации. По умолчанию – 50.
  • Конечная точка: Если 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.        ])

Наконец, если вы хотите проверить размер памяти элемента массива, вы можете использовать itemize

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
Мин. НП.мин()
Max НП.макс()
среднее np.mean()
медиана np.median()
Стандартное отклонение 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.dot — мощная библиотека для матричных вычислений. Например, вы можете вычислить скалярное произведение с помощью np.dot. Произведение Numpy.dot — это скалярное произведение a и b. numpy.dot() в Python обрабатывает двумерные массивы и выполняет матричные умножения.

Синтаксис:

numpy.dot(x, y, out=None)

Параметры

Здесь,

x, y: Входные массивы. x и y должны быть 1-D или 2-D, чтобы функция np.dot() работала.

внешний: это выходной аргумент для возвращаемого скаляра одномерного массива. В противном случае следует вернуть ndarray.

Returns

Функция numpy.dot() в Python возвращает скалярное произведение двух массивов x и y. Функция dot() возвращает скаляр, если оба x и y являются одномерными; в противном случае она возвращает массив. Если задано '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() используется для возврата матричного произведения двух массивов. Вот как это работает

1) 2D массивы, возвращают обычный продукт

2) Размеры > 2, продукт рассматривается как стопка матриц.

3) Одномерный массив сначала преобразуется в матрицу, а затем вычисляется произведение.

Синтаксис:

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

Резюме

  • 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() используется для возврата матричного произведения двух массивов.