Наука о данных

Учебное пособие по Python NumPy

Учебное пособие по Python NumPy
В этом уроке, посвященном библиотеке Python NumPy, мы рассмотрим, как эта библиотека позволяет нам управлять мощными объектами N-мерных массивов с помощью сложных функций для управления этими массивами и работы с ними. Чтобы завершить этот урок, мы рассмотрим следующие разделы:

Что такое пакет Python NumPy?

Проще говоря, NumPy означает `` Числовой Python '', и это то, к чему он стремится, позволяя очень легко и интуитивно выполнять сложные числовые операции с объектами N-мерного массива. Это основная библиотека, используемая в научные вычисления, с функциями, присутствующими для выполнения линейных алгебраических операций и статистических операций.

Одна из самых фундаментальных (и привлекательных) концепций NumPy - это использование N-мерных объектов массива. Мы можем принять этот массив как просто набор строк и столбцов, как файл MS-Excel. Можно преобразовать список Python в массив NumPy и управлять функциями над ним.

Представление массива NumPy

Просто примечание перед началом, мы используем виртуальную среду для этого урока, который мы сделали с помощью следующей команды:

Python -m virtualenv numpy
источник numpy / bin / активировать

Как только виртуальная среда станет активной, мы можем установить библиотеку numpy в виртуальном env, чтобы можно было выполнить следующие примеры, которые мы создаем:

pip install numpy

Мы видим что-то подобное, когда выполняем указанную выше команду:

Давайте быстро проверим, правильно ли установлен пакет NumPy, с помощью следующего короткого фрагмента кода:

импортировать numpy как np
а = np.массив ([1,2,3])
печать (а)

После запуска указанной выше программы вы должны увидеть следующий результат:

У нас также могут быть многомерные массивы с NumPy:

multi_dimension = np.массив ([(1, 2, 3), (4, 5, 6)])
печать (многомерный)

Это приведет к следующему выводу:

[[1 2 3]
[4 5 6]]

Вы также можете использовать Anaconda для запуска этих примеров, что проще, и это то, что мы использовали выше. Если вы хотите установить его на свой компьютер, посмотрите урок, который описывает «Как установить Anaconda Python на Ubuntu 18».04 LTS »и поделитесь своим мнением. Теперь давайте перейдем к различным типам операций, которые можно выполнять с массивами Python NumPy.

Использование массивов NumPy над списками Python

Важно спросить, если у Python уже есть сложная структура данных для хранения нескольких элементов, зачем нам вообще нужны массивы NumPy?? Массивы NumPy предпочтительнее списков Python по следующим причинам:

Разрешите нам доказать, что массивы NumPy занимают меньше памяти. Это можно сделать, написав очень простую программу на Python:

импортировать numpy как np
время импорта
import sys
python_list = диапазон (500)
печать (sys.getsizeof (1) * len (список_подключений))
numpy_arr = np.апельсин (500)
печать (numpy_arr.размер * numpy_arr.размер товара)

Когда мы запустим указанную выше программу, мы получим следующий результат:

14000
4000

Это показывает, что список того же размера более 3 раз по размеру по сравнению с массивом NumPy того же размера.

Выполнение операций NumPy

В этом разделе давайте быстро рассмотрим операции, которые можно выполнять с массивами NumPy.

Поиск размеров в массиве

Поскольку массив NumPy может использоваться в любом размерном пространстве для хранения данных, мы можем найти размерность массива с помощью следующего фрагмента кода:

импортировать numpy как np
numpy_arr = np.массив ([(1,2,3), (4,5,6)])
печать (numpy_arr.ндим)

На выходе мы увидим «2», так как это двумерный массив.

Поиск типа данных элементов в массиве

Мы можем использовать массив NumPy для хранения любого типа данных. Давайте теперь выясним, какой тип данных содержит массив:

other_arr = np.array ([('трепет', 'б', 'кошка')])
print (other_arr.dtype)
numpy_arr = np.массив ([(1,2,3), (4,5,6)])
печать (numpy_arr.dtype)

В приведенном выше фрагменте кода мы использовали разные типы элементов. Вот результат, который покажет этот сценарий:

int64

Это происходит, поскольку символы интерпретируются как символы Unicode, а второй очевиден.

Изменить форму элементов массива

Если массив NumPy состоит из 2 строк и 4 столбцов, его можно изменить так, чтобы он содержал 4 строки и 2 столбца. Напишем простой фрагмент кода для того же:

оригинал = нп.array ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
печать (оригинал)
reshaped = оригинал.изменить форму (4, 2)
печать (изменена)

Запустив приведенный выше фрагмент кода, мы получим следующий вывод с обоими массивами, выведенными на экран:

[['1' 'b' 'c' '4']
['5' 'f' 'g' '8']]
[['1' 'b']
['c' '4']
['5' 'f']
['g' '8']]

Обратите внимание, как NumPy позаботился о перемещении и связывании элементов с новыми строками.

Математические операции с элементами массива

Выполнение математических операций с элементами массива очень просто. Мы начнем с написания простого фрагмента кода, чтобы узнать максимум, минимум и сложение всех элементов массива. Вот фрагмент кода:

numpy_arr = np.массив ([(1, 2, 3, 4, 5)])
печать (numpy_arr.Максимум())
печать (numpy_arr.мин ())
печать (numpy_arr.сумма ())
печать (numpy_arr.иметь в виду())
печать (np.sqrt (numpy_arr))
печать (np.std (numpy_arr))

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

5
1
15
3.0
[[1.   1.41421356 1.73205081 2.   2.23606798]]
1.4142135623730951

Преобразование списков Python в массивы NumPy

Даже если вы использовали списки Python в своих существующих программах и не хотите изменять весь этот код, но все же хотите использовать массивы NumPy в своем новом коде, хорошо знать, что мы можем легко преобразовать Python list в массив NumPy. Вот пример:

# Создайте 2 новых списка высоты и веса
высота = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
вес = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Создайте 2 массива numpy из высоты и веса
np_height = np.массив (высота)
np_weight = np.массив (вес)

Чтобы проверить, теперь мы можем распечатать тип одной из переменных:

print (введите (np_height))

И это покажет:

Теперь мы можем выполнять математические операции над всеми элементами сразу. Давайте посмотрим, как мы можем рассчитать ИМТ людей:

# Рассчитать bmi
bmi = np_weight / np_height ** 2
# Распечатать результат
печать (bmi)

Это покажет ИМТ всех людей, рассчитанный поэлементно:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Разве не так просто и удобно? Мы даже можем легко фильтровать данные с помощью условия вместо индекса в квадратных скобках:

bmi [bmi> 25]

Это даст:

массив ([29.54033934, 39.02460418, 29.8200692])

Создавайте случайные последовательности и повторы с NumPy

Благодаря множеству функций, присутствующих в NumPy для создания случайных данных и упорядочивания их в требуемой форме, массивы NumPy много раз используются для создания тестовых наборов данных во многих местах, включая цели отладки и тестирования. Например, если вы хотите создать массив от 0 до n, мы можем использовать arange (обратите внимание на одиночный 'r'), как в данном фрагменте:

печать (np.апельсин (5))

Это вернет результат как:

[0 1 2 3 4]

Эту же функцию можно использовать для предоставления более низкого значения, чтобы массив начинался с чисел, отличных от 0:

печать (np.аранж (4, 12))

Это вернет результат как:

[4 5 6 7 8 9 10 11]

Цифры не обязательно должны быть непрерывными, они могут пропускать этап исправления, например:

печать (np.аранж (4, 14, 2))

Это вернет результат как:

[4 6 8 10 12]

Мы также можем получить числа в порядке убывания с отрицательным значением пропуска:

печать (np.аранж (14, 4, -1))

Это вернет результат как:

[14 13 12 11 10 9 8 7 6 5]

Можно финансировать n чисел между x и y с равным пространством с помощью метода linspace, вот фрагмент кода для того же:

нп.linspace (start = 10, stop = 70, num = 10, dtype = int)

Это вернет результат как:

массив ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])

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

Наконец, давайте посмотрим, как мы можем сгенерировать набор случайных последовательностей с помощью NumPy, который является одной из наиболее часто используемых функций для целей тестирования. Мы передадим диапазон чисел в NumPy, который будет использоваться в качестве начальной и конечной точки для случайных чисел:

печать (np.случайный.randint (0, 10, size = [2,2]))

Приведенный выше фрагмент создает 2-х мерный массив NumPy, который будет содержать случайные числа от 0 до 10. Вот пример вывода:

[[0 4]
[8 3]]

Обратите внимание, так как числа случайны, результат может отличаться даже между двумя запусками на одной и той же машине.

Заключение

В этом уроке мы рассмотрели различные аспекты этой вычислительной библиотеки, которую мы можем использовать с Python для вычисления простых, а также сложных математических задач, которые могут возникнуть в различных сценариях использования.NumPy - одна из самых важных библиотек вычислений, когда дело доходит до инженерия данных и вычисление числовых данных, определенно навык, который нам нужно иметь за плечами.

Поделитесь своими отзывами об уроке в Twitter с @sbmaggarwal и @LinuxHint.

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...