Предок NumPy, Numeric, был разработан Джимом Хугунином. Также был создан пакет Numarray с дополнительной функциональностью. В 2005 году Трэвис Олифант выпустил пакет NumPy, добавив особенности Numarray в Numeric. Это проект с исходным кодом, и в его развитии поучаствовало уже много человек.
NumPy или Numerical Python — это библиотека Python, которая предлагает следующее:
- Мощный N-мерный массив
- Высокоуровневые функции
- Инструменты для интеграции кода C/C++ и Fortran
- Использование линейной алгебры, Преобразований Фурье и возможностей случайных чисел
Она также предлагает эффективный многомерный контейнер общих данных. С ее помощью можно определять произвольные типы данных. Официальный сайт библиотеки — www.numpy.org
Установка NumPy в Python
Ubuntu Linux
sudo apt update -y sudo apt upgrade -y sudo apt install python3-tk python3-pip -y sudo pip install numpy -yAnaconda
conda install -c anaconda numpy
Массив NumPy
Это мощный многомерный массив в форме строк и колонок. С помощью библиотеки можно создавать массивы NumPy из вложенного списка Python и получать доступ к его элементам.
Массив NumPy — это не то же самое, что и класс array.array из Стандартной библиотеки Python, который работает только с одномерными массивами.
Одномерный массив NumPy.
import numpy as np a = np.array([1,2,3]) print(a)Результатом кода выше будет
[1 2 3].Многомерные массивы.
import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a)Результат —
[[1 2 3] [4 5 6]].
Атрибуты массива NumPy
ndarray.ndim
Возвращает количество измерений массива.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.ndim)Вывод кода сверху будет 2, поскольку «a» — это 2-мерный массив.
ndarray.shape
Возвращает кортеж размера массива, то есть (n,m), где n — это количество строк, а m — количество колонок.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.shape)Вывод кода — (2,3), то есть 2 строки и 3 колонки.
ndarray.size
Возвращает общее количество элементов в массиве.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.size)Вывод — 6, потому что 2 х 3.
ndarray.dtype
Возвращает объект, описывающий тип элементов в массиве.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.dtype)Вывод — «int32», поскольку это 32-битное целое число.
Можно явно определить тип данных массива NumPy.import numpy as np a = np.array([[1,2,3],[4,5,6]], dtype = float) print(a.dtype)Этот код вернет
float64, потому что это 64-битное число с плавающей точкой.ndarray.itemsize
Возвращает размер каждого элемента в массиве в байтах.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.itemsize)Вывод — 4, потому что 32/8.
ndarray.data
Возвращает буфер с актуальными элементами массива. Это альтернативный способ получения доступа к элементам через их индексы.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(a.data)Этот код вернет список элементов.
ndarray.sum()
Функция вернет сумму все элементов ndarray.import numpy as np a = np.random.random((2,3)) print(a) print(a.sum())Сгенерированная в этом примере матрица —
[[0.46541517 0.66668157 0.36277909] [0.7115755 0.57306008 0.64267163]], следовательно код вернет3.422183052180838. Поскольку используется генератор случайных чисел, ваш результат будет отличаться.ndarray.min()
Функция вернет элемент с минимальным значением из ndarray.import numpy as np a = np.random.random((2,3)) print(a.min())Сгенерированная в этом примере матрица —
[[0.46541517 0.66668157 0.36277909] [0.7115755 0.57306008 0.64267163]], следовательно код вернет0.36277909. Поскольку используется генератор случайных чисел, ваш результат будет отличаться.ndarray.max()
Функция вернет элемент с максимальным значением из ndarray.import numpy as np a = np.random.random((2,3)) print(a.min())Сгенерированная в этом примере матрица —
[[0.46541517 0.66668157 0.36277909] [0.7115755 0.57306008 0.64267163]], следовательно код вернет0.7115755. Поскольку используется генератор случайных чисел, ваш результат будет отличаться
Функции NumPy
type(numpy.ndarray)
Это функция Python, используемая, чтобы вернуть тип переданного параметра. В случае с массивом numpy, она вернетnumpy.ndarray.import numpy as np a = np.array([[1,2,3],[4,5,6]]) print(type(a))Код выше вернет
numpy.ndarray.numpy.zeroes()numpy.zeros((rows, columns), dtype)
Эта функция создаст массив numpy с заданным количеством измерений, где каждый элемент будет равняться 0. Если dtype не указан, по умолчанию будет использоваться dtype.import numpy as np np.zeros((3,3)) print(a)Код вернет массив numpy 3×3, где каждый элемент равен 0.
numpy.ones()numpy.ones((rows,columns), dtype)
Эта функция создаст массив numpy с заданным количеством измерений, где каждый элемент будет равняться 1. Если dtype не указан, по умолчанию будет использоваться dtype.import numpy as np np.ones((3,3)) print(a)Код вернет массив numpy 3 x 3, где каждый элемент равен 1.
numpy.empty()numpy.empty((rows,columns))
Эта функция создаст массив, содержимое которого будет случайным — оно зависит от состояния памяти.import numpy as np np.empty((3,3)) print(a)Код вернет массив numpy 3×3, где каждый элемент будет случайным.
numpy.arrange()numpy.arrange(start, stop, step)
Эта функция используется для создания массива numpy, элементы которого лежат в диапазоне значений отstartдоstopс разницей равнойstep.import numpy as np a=np.arange(5,25,4) print(a)Вывод этого кода —
[5 9 13 17 21]numpy.linspace()numpy.linspace(start, stop, num_of_elements)
Эта функция создаст массив numpy, элементы которого лежат в диапазоне значений междуstartдоstop, аnum_of_elements— это размер массива. Тип по умолчанию —float64.import numpy as np a=np.linspace(5,25,5) print(a)Вывод —
[5 10 15 20 25].numpy.logspace()numpy.logspace(start, stop, num_of_elements)
Эта функция используется для создания массива numpy, элементы которого лежат в диапазоне значений отstartдоstop, аnum_of_elements— это размер массива. Тип по умолчанию — float64. Все элементы находятся в пределах логарифмической шкалы, то есть представляют собой логарифмы соответствующих элементов.import numpy as np a = np.logspace(5,25,5) print(a)Вывод —
[1.e+05 1.e+10 1.e+15 1.e+20 1.e+25].numpy.sin()numpy.sin(numpy.ndarray)
Этот код вернет синус параметра.import numpy as np a = np.logspace(5,25,2) print(np.sin(a))Вывод кода сверху равен
[0.0357488 -0.3052578]. Также естьcos(),tan()и так далее.numpy.reshape()numpy.reshape(dimensions)
Эта функция используется для изменения количества измерений массива numpy. От количества аргументов вreshapeзависит, сколько измерений будет в массиве numpy.import numpy as np a = np.arange(9).reshape(3,3) print(a)Вывод этого года — 2-мерный массив 3×3.
numpy.random.random()numpy.random.random((rows, column))
Эта функция возвращает массив с заданным количеством измерений, где каждый элемент генерируется случайным образом.a = np.random.random((2,2))Этот код вернет ndarray 2×2.
numpy.exp()numpy.exp(numpy.ndarray)
Функция вернет ndarray с экспоненциальной величиной каждого элемента.b = np.exp([10])Значением кода выше будет
22025.4657948.numpy.sqrt()numpy.sqrt(numpy.ndarray)
Эта функция вернет ndarray с квадратным корнем каждого элемента.b = np.sqrt([16])Этот код вернет значение 4.
Базовые операции NumPy
a = np.array([5, 10, 15, 20, 25])
b = np.array([0, 1, 2, 3])
Этот код вернет разницу двух массивов
c = a - b.Этот код вернет массив, где каждое значение возведено в квадрат
b**2.Этот код вернет значение в соответствии с заданным выражением
10 * np.sin(a).Этот код вернет
Trueдля каждого элемента, чье значение удовлетворяет условиеa < 15.
Базовые операции с массивом NumPy
a = np.array([[1,1], [0,1]])
b = np.array([[2,0],[3,4]])
Этот код вернет произведение элементов обоих массивов
a * b.Этот код вернет матричное произведение обоих массивов
a @ b
илиa.dot(b).
Выводы
Из этого материала вы узнали, что такое numpy и как его устанавливать, познакомились с массивов numpy, атрибутами и операциями массива numpy, а также базовыми операциями numpy.





