HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Массивы данных в Python можно разделить на два типа по наличию или отсутствию порядка элементов. Например:</p>
1 <p>Массивы данных в Python можно разделить на два типа по наличию или отсутствию порядка элементов. Например:</p>
2 <ul><li>Множество set или словарь dict относятся к неупорядоченным данным - не удастся обойти их по индексу</li>
2 <ul><li>Множество set или словарь dict относятся к неупорядоченным данным - не удастся обойти их по индексу</li>
3 <li>Зато такая возможность есть со списком list или кортежем tuple - у их элементов индексы есть</li>
3 <li>Зато такая возможность есть со списком list или кортежем tuple - у их элементов индексы есть</li>
4 </ul><p>Для массивов numpy.ndarray порядок элементов важен, потому что он помогает ускорить обработку данных. Его индексация похожа на индексацию списка list. В этом уроке подробнее разберем эту тему, а также поговорим о правилах и методах работы с индексами массивов numpy.ndarray.</p>
4 </ul><p>Для массивов numpy.ndarray порядок элементов важен, потому что он помогает ускорить обработку данных. Его индексация похожа на индексацию списка list. В этом уроке подробнее разберем эту тему, а также поговорим о правилах и методах работы с индексами массивов numpy.ndarray.</p>
5 <h2>Правила индексирования массивов</h2>
5 <h2>Правила индексирования массивов</h2>
6 <p>Возьмем пример из прошлого урока и добавим к нему чуть больше данных:</p>
6 <p>Возьмем пример из прошлого урока и добавим к нему чуть больше данных:</p>
7 <p>Получим элемент массива numpy.ndarray. Здесь принцип такой же, как с получением элемента списка:</p>
7 <p>Получим элемент массива numpy.ndarray. Здесь принцип такой же, как с получением элемента списка:</p>
8 <p>Отрицательные целые значения также применимы к индексации массивов numpy.ndarray:</p>
8 <p>Отрицательные целые значения также применимы к индексации массивов numpy.ndarray:</p>
9 <p>В многомерном случае делается все по аналогии:</p>
9 <p>В многомерном случае делается все по аналогии:</p>
10 <p>Выше мы рассмотрели два способа получения элементов массива. Лучше всего использовать последний, потому что он выполняется за меньшее время. Причины станут ясны дальше, после знакомства с операцией среза.</p>
10 <p>Выше мы рассмотрели два способа получения элементов массива. Лучше всего использовать последний, потому что он выполняется за меньшее время. Причины станут ясны дальше, после знакомства с операцией среза.</p>
11 <h2>Операции среза данных</h2>
11 <h2>Операции среза данных</h2>
12 <p>Операция среза - это удобный и распространенный способ получить некоторое подмножество элементов, идущих подряд. Срез помогает сократить время выполнения подвыборки за счет того, что не нужно использовать циклы:</p>
12 <p>Операция среза - это удобный и распространенный способ получить некоторое подмножество элементов, идущих подряд. Срез помогает сократить время выполнения подвыборки за счет того, что не нужно использовать циклы:</p>
13 <p>Рассмотрим примеры срезов:</p>
13 <p>Рассмотрим примеры срезов:</p>
14 <p>Срезы многомерных массивов упрощают операции со списками:</p>
14 <p>Срезы многомерных массивов упрощают операции со списками:</p>
15 <p>В примере выше мы вырезали элементы из верхнего левого квадрата исходной таблицы размером 2x2. Чтобы решить такую задачу с помощью списков, нужно было бы писать дополнительный код, тратить больше времени и сил.</p>
15 <p>В примере выше мы вырезали элементы из верхнего левого квадрата исходной таблицы размером 2x2. Чтобы решить такую задачу с помощью списков, нужно было бы писать дополнительный код, тратить больше времени и сил.</p>
16 <p>Еще одна востребованная операция с многомерными массивами -<strong>получение строк и столбцов значений</strong>. Снова используем срезы массива numpy.ndarray и реализуем задачу таким образом:</p>
16 <p>Еще одна востребованная операция с многомерными массивами -<strong>получение строк и столбцов значений</strong>. Снова используем срезы массива numpy.ndarray и реализуем задачу таким образом:</p>
17 <h3>Итеративный обход</h3>
17 <h3>Итеративный обход</h3>
18 <p>Как мы говорили выше, в работе с массивами лучше не пользоваться циклами. Если есть возможность, лучше обходить элементы в нужном порядке с возможным периодическим пропуском элементов - так мы экономим время выполнения:</p>
18 <p>Как мы говорили выше, в работе с массивами лучше не пользоваться циклами. Если есть возможность, лучше обходить элементы в нужном порядке с возможным периодическим пропуском элементов - так мы экономим время выполнения:</p>
19 <p>Знак шага указывает на порядок обхода: плюс говорит о восходящем порядке обхода индексов, минус - об обратном. Значение шага задает период обхода. Аналогичный синтаксис применим и для многомерных массивов:</p>
19 <p>Знак шага указывает на порядок обхода: плюс говорит о восходящем порядке обхода индексов, минус - об обратном. Значение шага задает период обхода. Аналогичный синтаксис применим и для многомерных массивов:</p>
20 <h2>Закрепим знания на практике</h2>
20 <h2>Закрепим знания на практике</h2>
21 <p>Воспользуемся недельными данными по продажам сети магазинов:</p>
21 <p>Воспользуемся недельными данными по продажам сети магазинов:</p>
22 <p>Подготовим данные для решения задач:</p>
22 <p>Подготовим данные для решения задач:</p>
23 <p>А теперь пошагово выполним три задачи.</p>
23 <p>А теперь пошагово выполним три задачи.</p>
24 <p><strong>Задача 1.</strong>Оставить только первые два магазина:</p>
24 <p><strong>Задача 1.</strong>Оставить только первые два магазина:</p>
25 <p><strong>Задача 2.</strong>Оставить в рассмотрении данные продаж за выходные дни:</p>
25 <p><strong>Задача 2.</strong>Оставить в рассмотрении данные продаж за выходные дни:</p>
26 <p><strong>Задача 3.</strong>Сделать обратный порядок дней в таблице:</p>
26 <p><strong>Задача 3.</strong>Сделать обратный порядок дней в таблице:</p>
27 <h3>Выводы</h3>
27 <h3>Выводы</h3>
28 <p>В этом уроке мы изучили основные методы работы с индексами массивов. Индексация, срезы и итеративный обход списков list синтаксически похожи на операции над массивами numpy.ndarray. Однако есть и некоторые особенности, которые позволяют упростить и ускорить работу с подвыборками элементов массивов Numpy.</p>
28 <p>В этом уроке мы изучили основные методы работы с индексами массивов. Индексация, срезы и итеративный обход списков list синтаксически похожи на операции над массивами numpy.ndarray. Однако есть и некоторые особенности, которые позволяют упростить и ускорить работу с подвыборками элементов массивов Numpy.</p>