3.2 Массивы NumPy

1. Почему NumPy использует специальные массивы

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

Основой NumPy является специальная структура данных – массив ndarray.

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

Именно поэтому массивы NumPy широко используются:

·         в аналитике данных;

·         машинном обучении;

·         статистических вычислениях;

·         научных расчётах.

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

Массив создаётся с помощью функции np.array():

import numpy as np

x = np.array([1, 2, 3, 4])

print(x)

Результат

[1 2 3 4]

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

3. ndarray как математический объект

Массив NumPy рассматривается как числовой вектор.

Это означает, что массив является не просто хранилищем данных, а объектом, над которым можно выполнять:

·         арифметические операции;

·         статистические вычисления;

·         операции линейной алгебры.

Например:

x = np.array([1, 2, 3])

print(x * 2)

Результат:

[2 4 6]

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

4. Чем ndarray отличается от списка Python

Список Python и массив NumPy внешне похожи, но предназначены для разных задач (таблица 3.2.1).

 

Таблица 3.2.1 – Задачи Python и NumPy

list Python

ndarray NumPy

универсальное хранение объектов

хранение числовых данных

элементы могут иметь разные типы

элементы одного типа

ориентирован на гибкость

ориентирован на вычисления

вычисления через циклы

векторные операции

большие накладные расходы памяти

компактное хранение

 

Поэтому массив NumPy значительно лучше подходит для анализа больших наборов числовых данных.

5. Почему элементы массива имеют один тип

В отличие от списка Python, массив NumPy хранит элементы одного типа данных.

Проверка типа массива:

arr = np.array([1, 2, 3])

print(arr.dtype)

Результат:

int64

Тип данных массива называется dtype.

6. Почему dtype важен

Тип данных влияет:

·         на объём используемой памяти;

·         на скорость вычислений;

·         на точность математических операций.

Например, целые числа и числа с плавающей точкой занимают разный объём памяти и по-разному участвуют в вычислениях.

Тип можно указать явно:

arr = np.array([1, 2, 3], dtype=float)

Результат:

[1. 2. 3.]

Контроль типа данных особенно важен при работе с большими массивами.

7. Одномерные и двумерные массивы

NumPy поддерживает многомерные структуры данных.

Одномерный массив:

arr = np.array([1, 2, 3])

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

matrix = np.array([
   [1, 2],
   [3, 4]
])

Такой объект можно рассматривать как матрицу.

8. Что такое матрица в аналитике данных

В аналитике двумерный массив часто интерпретируется как таблица признаков. Например (таблица 3.2.2),

 

Таблица 3.2.2 – Пример матрицы в аналитике данных

Возраст

Доход

25

400

30

520

 

В виде массива NumPy:

data = np.array([
   [25, 400],
   [30, 520]
])

Такая структура используется:

·         в анализе данных;

·         линейной алгебре;

·         машинном обучении;

·         статистических моделях.

9. Почему ndarray эффективнее хранит данные

Список Python хранит ссылки на отдельные объекты.

Массив NumPy хранит данные как непрерывный блок памяти.

Это позволяет:

·         ускорять вычисления;

·         уменьшать расход памяти;

·         эффективно работать с большими массивами данных.

Именно поэтому NumPy широко используется в профессиональной аналитике.

10. shape и размерность массива

Для массива NumPy важны:

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

·         форма массива.

Пример:

matrix.shape

Результат:

(2, 2)

Это означает:

·         2 строки;

·         2 столбца.

Количество измерений массива:

matrix.ndim

Результат:

2

11. Роль массивов NumPy в аналитике

Массивы NumPy являются основой:

·         численных вычислений;

·         аналитических библиотек;

·         Pandas;

·         машинного обучения;

·         обработки признаков моделей.

Именно ndarray формирует представление о данных как о математических объектах.

12. Итоги темы

В теме были рассмотрены:

·         массивы NumPy;

·         структура ndarray;

·         тип данных dtype;

·         одномерные и двумерные массивы;

·         матрицы;

·         организация хранения данных в памяти.

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

Именно поэтому NumPy является фундаментом современной аналитики данных в Python.