HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Библиотека Numpy дает мощный и удобный высокоуровневый аппарат для работы с многомерными данными. Для работы с ними в Numpy разработана своя собственная структура данных - массив numpy.ndarray. Именно под эту структуру оптимизирована работа всего функционала библиотеки.</p>
1 <p>Библиотека Numpy дает мощный и удобный высокоуровневый аппарат для работы с многомерными данными. Для работы с ними в Numpy разработана своя собственная структура данных - массив numpy.ndarray. Именно под эту структуру оптимизирована работа всего функционала библиотеки.</p>
2 <p>В этом уроке познакомимся с тем, как создавать массив ndarray из стандартных типов данных языка Python и попробуем на практике решить ряд простых аналитических задач.</p>
2 <p>В этом уроке познакомимся с тем, как создавать массив ndarray из стандартных типов данных языка Python и попробуем на практике решить ряд простых аналитических задач.</p>
3 <h3>Структура данных библиотеки Numpy</h3>
3 <h3>Структура данных библиотеки Numpy</h3>
4 <p>Чтобы создать структуру numpy.ndarray, нужно конвертировать список list. Для конвертации из множества set требуется дополнительное приведение типа данных.</p>
4 <p>Чтобы создать структуру numpy.ndarray, нужно конвертировать список list. Для конвертации из множества set требуется дополнительное приведение типа данных.</p>
5 <p>Рассмотрим на таком примере:</p>
5 <p>Рассмотрим на таком примере:</p>
6 <p>А теперь разберем этот код подробнее. Сам пример показывает встроенную функциональность для создания структуры numpy.ndarray. Мы импортируем библиотеку Numpy, создаем короткий список значений simple_list, а затем конвертируем в массив my_first_ndarray. Для этого вызываем конструктор np.array() с объектами для конвертации.</p>
6 <p>А теперь разберем этот код подробнее. Сам пример показывает встроенную функциональность для создания структуры numpy.ndarray. Мы импортируем библиотеку Numpy, создаем короткий список значений simple_list, а затем конвертируем в массив my_first_ndarray. Для этого вызываем конструктор np.array() с объектами для конвертации.</p>
7 <p>С учетом примера выше, обратная конвертация в список происходит так:</p>
7 <p>С учетом примера выше, обратная конвертация в список происходит так:</p>
8 <p>Конвертация из списка Python - это самая популярная операция, с помощью которой создается структура numpy.ndarray.</p>
8 <p>Конвертация из списка Python - это самая популярная операция, с помощью которой создается структура numpy.ndarray.</p>
9 <p>Так происходит потому, что обмен данными между функциями и сервисами удобно производить в стандартных структурах данных языка. Другими словами, можно не вводить структуры данных сторонних библиотек и не усложнять программу.</p>
9 <p>Так происходит потому, что обмен данными между функциями и сервисами удобно производить в стандартных структурах данных языка. Другими словами, можно не вводить структуры данных сторонних библиотек и не усложнять программу.</p>
10 <p>Но при разработке сложных программ модуль numpy.ndarray может быть только частью общей структуры. В таких случаях используют стандартные типы данных языка для обмена данными между функциональными частями программ.</p>
10 <p>Но при разработке сложных программ модуль numpy.ndarray может быть только частью общей структуры. В таких случаях используют стандартные типы данных языка для обмена данными между функциональными частями программ.</p>
11 <p>В итоге порядок работы с данными при работе с Numpy выглядит следующим образом:</p>
11 <p>В итоге порядок работы с данными при работе с Numpy выглядит следующим образом:</p>
12 <p>Как правило, вычислительные и аналитические модули в виде входных данных ожидают списки значений. Всю оптимизацию они делают уже внутри себя в собственных абстракциях, невидимых извне. Это сделано для простоты интеграции.</p>
12 <p>Как правило, вычислительные и аналитические модули в виде входных данных ожидают списки значений. Всю оптимизацию они делают уже внутри себя в собственных абстракциях, невидимых извне. Это сделано для простоты интеграции.</p>
13 <h3>Допустимые типы данных</h3>
13 <h3>Допустимые типы данных</h3>
14 <p>Поговорим подробнее о типах элементов массива, которые можно использовать для numpy.ndarray. Продолжим работать с тем же примером и воспользуемся следующим методом:</p>
14 <p>Поговорим подробнее о типах элементов массива, которые можно использовать для numpy.ndarray. Продолжим работать с тем же примером и воспользуемся следующим методом:</p>
15 <p>Как и ожидалось, тип данных - int64. Необязательно ограничиваться только им:</p>
15 <p>Как и ожидалось, тип данных - int64. Необязательно ограничиваться только им:</p>
16 <p>Обратите внимание, что для экземпляра структуры numpy.ndarray нельзя использовать сразу несколько типов данных. Проще говоря, все элементы в массиве должны быть однотипные. Посмотрим, как конструктор сам определит тип данных при конвертации:</p>
16 <p>Обратите внимание, что для экземпляра структуры numpy.ndarray нельзя использовать сразу несколько типов данных. Проще говоря, все элементы в массиве должны быть однотипные. Посмотрим, как конструктор сам определит тип данных при конвертации:</p>
17 <p>Заметим, что ошибки при конвертации смешанного типа элементов массива не произошло. Конвертор просто привел все данные к строковому типу.</p>
17 <p>Заметим, что ошибки при конвертации смешанного типа элементов массива не произошло. Конвертор просто привел все данные к строковому типу.</p>
18 <h2>Как Numpy работает на практике</h2>
18 <h2>Как Numpy работает на практике</h2>
19 <p>Функциональность библиотеки Numpy настолько интуитивна, что уже сейчас можно решить простую аналитическую задачку.</p>
19 <p>Функциональность библиотеки Numpy настолько интуитивна, что уже сейчас можно решить простую аналитическую задачку.</p>
20 <p>Представим продажи ноутбуков в магазине за одну неделю:</p>
20 <p>Представим продажи ноутбуков в магазине за одну неделю:</p>
21 <p>На практике такие данные обычно хранятся в табличном виде в базе данных. Чтобы упростить пример, мы пропустили этап выгрузки - подразумевается, что данные приходят в вычислительный модуль уже в виде списка значений.</p>
21 <p>На практике такие данные обычно хранятся в табличном виде в базе данных. Чтобы упростить пример, мы пропустили этап выгрузки - подразумевается, что данные приходят в вычислительный модуль уже в виде списка значений.</p>
22 <p>Поработаем с данными с помощью библиотеки Numpy:</p>
22 <p>Поработаем с данными с помощью библиотеки Numpy:</p>
23 <p>Попробуем найти день недели с самыми низкими продажами. Опыт работы с Python подсказывает, что метод будет называться min() или minimum(). Найдем минимальное количество продаж и заодно день недели, в который оно совершено:</p>
23 <p>Попробуем найти день недели с самыми низкими продажами. Опыт работы с Python подсказывает, что метод будет называться min() или minimum(). Найдем минимальное количество продаж и заодно день недели, в который оно совершено:</p>
24 <p>Чтобы найти наибольшее количество продаж, достаточно поменять одну функцию:</p>
24 <p>Чтобы найти наибольшее количество продаж, достаточно поменять одну функцию:</p>
25 <p>На практике часто анализ не ограничивается только одной неделей продаж и одним магазином. В этом случае набор данных представлен в виде<strong>списка списков элементов</strong>- это уже двумерная структура, которая в математике называется матрицей.</p>
25 <p>На практике часто анализ не ограничивается только одной неделей продаж и одним магазином. В этом случае набор данных представлен в виде<strong>списка списков элементов</strong>- это уже двумерная структура, которая в математике называется матрицей.</p>
26 <p>В Numpy реализация инициализации массивов и функций работы с ними не зависит от размерности данных, что существенно упрощает разработку.</p>
26 <p>В Numpy реализация инициализации массивов и функций работы с ними не зависит от размерности данных, что существенно упрощает разработку.</p>
27 <p>В современных библиотеках можно применять одну и ту же функцию к различным типам данных. Рассмотрим это на примере, похожем на предыдущий. Найдем день с самыми низкими доходами во всей сети магазинов. Рассмотрим недельные продажи в четырех магазинах:</p>
27 <p>В современных библиотеках можно применять одну и ту же функцию к различным типам данных. Рассмотрим это на примере, похожем на предыдущий. Найдем день с самыми низкими доходами во всей сети магазинов. Рассмотрим недельные продажи в четырех магазинах:</p>
28 <p>Мы ожидаем, что функционально все должно быть реализовано похожим образом. Давайте в этом убедимся, взглянув на код:</p>
28 <p>Мы ожидаем, что функционально все должно быть реализовано похожим образом. Давайте в этом убедимся, взглянув на код:</p>
29 <p>В приведенном примере метод min() находит минимальный элемент среди всех значений массива.</p>
29 <p>В приведенном примере метод min() находит минимальный элемент среди всех значений массива.</p>
30 <p>Большинство функций в Numpy реализованы так, что методы и функции выполняют одинаковые операции, вне зависимости от типа данных на входе.</p>
30 <p>Большинство функций в Numpy реализованы так, что методы и функции выполняют одинаковые операции, вне зависимости от типа данных на входе.</p>
31 <p>В программировании такой подход называется<strong>полиморфизмом</strong>. Он упрощает разработку и делает код более простым для анализа и поддержки.</p>
31 <p>В программировании такой подход называется<strong>полиморфизмом</strong>. Он упрощает разработку и делает код более простым для анализа и поддержки.</p>
32 <h3>Выводы</h3>
32 <h3>Выводы</h3>
33 <p>Сегодня мы познакомились с основной структурой данных библиотеки Numpy - массивом numpy.ndarray.</p>
33 <p>Сегодня мы познакомились с основной структурой данных библиотеки Numpy - массивом numpy.ndarray.</p>
34 <p>В работе с ним мы используем указанный тип данных - это обусловлено оптимизацией работы функций внутри библиотеки. У Numpy понятный интерфейс для конвертации типа данных list из стандартной библиотеки Python.</p>
34 <p>В работе с ним мы используем указанный тип данных - это обусловлено оптимизацией работы функций внутри библиотеки. У Numpy понятный интерфейс для конвертации типа данных list из стандартной библиотеки Python.</p>
35 <p>Новые знания мы сразу закрепили на практической задаче - вычислили день с самыми низкими доходами в сети магазинов. Эта задача показывает, насколько Numpy упрощает работу с входными данными разной размерности.</p>
35 <p>Новые знания мы сразу закрепили на практической задаче - вычислили день с самыми низкими доходами в сети магазинов. Эта задача показывает, насколько Numpy упрощает работу с входными данными разной размерности.</p>