Руководство по массивам NumPy

Что такое массивы NumPy?

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

Как видно уже из названия, массивы NumPy это ключевая структура данных всей библиотеки. Кстати, само имя библиотеки это акроним Numeric или Numerical Python.

Создание массива NumPy

Проще всего массив NumPy создать из списка Python.

myPythonList = [1,9,8,3]

Преобразование списка в массив NumPy производится при помощи объекта np.array.

numpy_array_from_list = np.array(myPythonList)

Для вывода на экран результата просто наберем:

numpy_array_from_list

Output:

array([1, 9, 8, 3])

На практике эти операции можно объединить в одну:

a  = np.array([1,9,8,3])

Примечание: в документации Python для создания массива используется метод np.ndarray(). Однако описанный нами метод также является рекомендованным.

Таким же образом массив NumPy может быть создан и из кортежа.

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

Для массивов NumPy определены все основные арифметические операции: сложение, умножение, вычитание и деление. Синтаксис тоже обычный: имя массива, а за ним оператор(+, *, — , /)

Пример:

numpy_array_from_list + 10

Output:

array([11, 19, 18, 13])

В результате данной операции к каждому элементу массива прибавилось число 10.

Размерность массивов

Размерность массива можно определить с помощью объекта shape, написав его сразу после имени массива. Таким же образом, с помощью dtype, можно определить тип массива.

import numpy as np
a  = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Тип integer не может содержать значений с плавающей запятой. Поэтому если вы создаете массив с такими значениями, его тип будет float.

#### Different type
b  = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

Двумерные массивы

Размерность можно добавить с помощью запятой. Обратите внимание, что все это должно быть в квадратных скобках [].

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

Трехмерные массивы

Массивы высших размерностей можно создавать следующим образом:

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)

Заключение

В этой главе мы рассмотрели функцию для создания массивов — array([1,2,3]), а также функцию для вывода размерности массива — array([.]).shape.