Модуль array. Массивы в python
Модуль array определяет массивы в python. Массивы очень похожи на списки, но с ограничением на тип данных и размер каждого элемента.
Размер и тип элемента в массиве определяется при его создании и может принимать следующие значения:
Код типа | Тип в C | Тип в python | Минимальный размер в байтах |
---|---|---|---|
‘b’ | signed char | int | 1 |
‘B’ | unsigned char | int | 1 |
‘h’ | signed short | int | 2 |
‘H’ | unsigned short | int | 2 |
‘i’ | signed int | int | 2 |
‘I’ | unsigned int | int | 2 |
‘l’ | signed long | int | 4 |
‘L’ | unsigned long | int | 4 |
‘q’ | signed long long | int | 8 |
‘Q’ | unsigned long long | int | 8 |
‘f’ | float | float | 4 |
‘d’ | double | float | 8 |
Класс array. array(TypeCode [, инициализатор]) — новый массив, элементы которого ограничены TypeCode, и инициализатор, который должен быть списком, объектом, который поддерживает интерфейс буфера, или итерируемый объект.
array.typecodes — строка, содержащая все возможные типы в массиве.
Массивы изменяемы. Массивы поддерживают все списковые методы (индексация, срезы, умножения, итерации), и другие методы.
array.typecode — TypeCode символ, использованный при создании массива.
array.itemsize — размер в байтах одного элемента в массиве.
array.append(х) — добавление элемента в конец массива.
array.buffer_info() — кортеж (ячейка памяти, длина). Полезно для низкоуровневых операций.
array.byteswap() — изменить порядок следования байтов в каждом элементе массива. Полезно при чтении данных из файла, написанного на машине с другим порядком байтов.
array.count(х) — возвращает количество вхождений х в массив.
array.extend(iter) — добавление элементов из объекта в массив.
array.frombytes(b) — делает массив array из массива байт. Количество байт должно быть кратно размеру одного элемента в массиве.
array.fromfile(F, N) — читает N элементов из файла и добавляет их в конец массива. Файл должен быть открыт на бинарное чтение. Если доступно меньше N элементов, генерируется исключение EOFError , но элементы, которые были доступны, добавляются в массив.
array.fromlist(список) — добавление элементов из списка.
array.index(х) — номер первого вхождения x в массив.
array.insert(n, х) — включить новый пункт со значением х в массиве перед номером n. Отрицательные значения рассматриваются относительно конца массива.
array.pop(i) — удаляет i-ый элемент из массива и возвращает его. По умолчанию удаляется последний элемент.
array.remove(х) — удалить первое вхождение х из массива.
array.reverse() — обратный порядок элементов в массиве.
array.tobytes() — преобразование к байтам.
array.tofile(f) — запись массива в открытый файл.
array.tolist() — преобразование массива в список.
Вот и всё, что можно было рассказать про массивы. Они используются редко, когда нужно достичь высокой скорости работы. В остальных случаях массивы можно заменить другими типами данных: списками, кортежами, строками.
Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>
Свежее
- Модуль csv — чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
Категории
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
Полезные материалы
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Мы в соцсетях
Python работа с массивами двумерными и многомерными — создание, поиск, добавление, сортировка и другие
Массивом в языке Python называется упорядоченная структура данных, которая используется для хранения однотипных объектов. По своему функциональному назначению они схожи со списками, однако обладают некоторыми ограничениями на тип входных данных, а также их размер. Несмотря на такую особенность, массивы являются достаточно функциональным инструментом по работе с наборами данных в языке программирования Python.
Создание и заполнение
Перед тем как добавить (создать) новый массив в Python 3, необходимо произвести импорт библиотеки, отвечающей за работу с таким объектом. Для этого потребуется добавить строку from array import *
в файл программы. Как уже было сказано ранее, массивы ориентированы на взаимодействие с одним постоянным типом данных, вследствие чего все их ячейки имеют одинаковый размер. Воспользовавшись функцией array, можно создать новый набор данных. В следующем примере демонстрируется заполнение массива Python — запись целых чисел при помощи метода, предложенного выше.
from array import * data = array('i', [2, 5, 4, 0, 8])
Как можно заметить, функция array принимает два аргумента, первым из которых становится тип создаваемого массива, а на месте второго стоит начальный список его значений. В данном случае i представляет собой целое знаковое число, занимающее 2 байта памяти. Вместо него можно использовать и другие примитивы, такие как 1-байтовый символ (c) или 4-байтовое число с плавающей точкой (f).
При этом важно помнить, что массив способен хранить только данные одного типа, иначе вызов программы завершится ошибкой.
Обратиться к элементу можно при помощи квадратных скобок, к примеру, data[2].
Добавление элемента
Чтобы добавить новый элемент в массив Python необходимо воспользоваться методом insert. Для этого потребуется вызвать его через созданный ранее объект и ввести в качестве аргументов два значения. Первое (4) отвечает за индекс нового элемента в массиве, то есть место, куда его следует поместить, а второе (3) представляет собой само значение.
from array import * data = array('i', [2, 5, 4, 0, 8]) data.insert(4, 3)
Стоит помнить, что добавить в массив можно только данные того типа, к которому относится ранее созданный объект. При выполнении подобной операции количество доступных ячеек увеличивается согласно текущим потребностям программы.
Удаление элемента
В Python удалить ненужные элементы из массива можно при помощи метода pop, аргументом которого является индекс ячейки (3). Как и в случае с добавлением нового элемента, метод необходимо вызвать через ранее созданный объект, как это показано в примере.
from array import * data = array('i', [2, 5, 4, 0, 8]) data.pop(3)
После выполнения данной операции содержимое массива сдвигается так, чтобы количество доступных ячеек памяти совпадало с текущим количеством элементов.
Вывод
При работе с любыми данными в программе время от времени возникает необходимость в их проверке, что можно легко осуществить с помощью вывода на экран. Выполнить подобное действие поможет функция под названием print. Она принимает в качестве аргумента один из элементов созданного и заполненного ранее массива. В следующем примере его обработка производится при помощи цикла for, где каждый элемент массива data получает временный идентификатор i для передачи в упомянутый ранее метод print.
from array import * data = array('i', [2, 5, 4, 0, 8]) for i in data: print(i)
Результатом работы приведенного выше кода является вывод массива Python — перебор всех присвоенных ранее целочисленных значений и поочередный вывод в один столбец.
Получение размера
Поскольку размерность массива может меняться во время выполнения программы, иногда бывает полезным узнать текущее количество элементов, входящих в его состав. Функция len служит для получения длины (размера) массива в Python в виде целочисленного значения. Чтобы отобразить в Python количество элементов массива на экране стоит воспользоваться методом print.
from array import * data = array('i', [2, 5, 4, 0, 8]) print(len(data))
Как видно из представленного выше кода, функция print получает в качестве аргумента результат выполнения len, что позволяет ей вывести числовое значение в консоль.
Двумерный массив
В некоторых случаях для правильного представления определенного набора информации обычного одномерного массива оказывается недостаточно. В языке программирования Python 3 двумерных и многомерных массивов не существует, однако базовые возможности этой платформы легко позволяют построить двумерный список. Элементы подобной конструкции располагаются в столбцах и строках, заполняемых как это показано на следующем примере.
d1 = [] for j in range(5): d2 = [] for i in range(5): d2.append(0) d1.append(d2)
Здесь можно увидеть, что основная идея реализации двумерного набора данных заключается в создании нескольких списков d2 внутри одного большого списка d1. При помощи двух циклов for происходит автоматическое заполнение нулями матрицы с размерностью 5×5. С этой задачей помогают справляться методы append и range, первый из которых добавляет новый элемент в список (0), а второй позволяет устанавливать его величину (5). Нельзя не отметить, что для каждого нового цикла for используется собственная временная переменная, выполняющая представление текущего элемента внешнего (j) или внутренних (i) списков.
Многомерный массив
Как и в случае с двумерным массивом, представленным в виде сложного списка, многомерный массив реализуется по принципу «списков внутри списка». Следующий пример наглядно демонстрирует создание трехмерного списка, который заполняется нулевыми элементами при помощи трех циклов for. Таким образом, программа создает матрицу с размерностью 5×5×5.
d1 = [] for k in range(5): d2 = [] for j in range(5): d3 = [] for i in range(5): d3.append(0) d2.append(d3) d1.append(d3)
Аналогично двумерному массиву, обратиться к ячейке построенного выше объекта можно с помощью индексов в квадратных скобках, например, d1[4][2][3].
Заключение
Для взаимодействия с наборами данных одного типа в языке программирования Python, как правило, используются массивы. Стандартная библиотека платформы позволяет достаточно эффективно работать с подобной структурой, предоставляя возможность манипулировать ее содержимым при помощи соответствующих функций. Кроме того, в Python поддерживается многомерное представление списков без ограничений на количество уровней.
Python Arrays — GeeksforGeeks
Массив — это набор элементов, хранящихся в смежных областях памяти. Идея состоит в том, чтобы хранить несколько элементов одного типа вместе. Это упрощает вычисление положения каждого элемента, просто добавляя смещение к базовому значению, т. е. местонахождению в памяти первого элемента массива (обычно обозначается именем массива).
Для простоты мы можем думать о массиве как о лестничном марше, где на каждой ступеньке находится значение (скажем, один из ваших друзей). Здесь вы можете определить местонахождение любого из ваших друзей, просто зная количество шагов, на которых они находятся. Массив может обрабатываться в Python модулем с именем 9. 0004 массив . Они могут быть полезны, когда нам нужно манипулировать значениями только определенного типа данных. Пользователь может рассматривать списки как массивы. Однако пользователь не может ограничивать тип элементов, хранящихся в списке. Если вы создаете массивы с помощью модуля array , все элементы массива должны быть одного типа.
Создание массива
Массив в Python можно создать, импортировав модуль массива. массив( data_type , список_значений ) используется для создания массива с типом данных и списком значений, указанными в его аргументах.
Python3
a = arr. array( 'i' , [ 1 , 2 , 3 ])
|
Output :
Сложности создания массивов:The new созданный массив: 1 2 3 Новый созданный массив: 2.5 3.2 3.3
Сложность времени: O(1)
Вспомогательное пространство: O(n)
Ниже перечислены некоторые типы данных, которые помогут создать массив данных разных типов.
Добавление элементов в массив
Элементы могут быть добавлены в массив с помощью встроенной функции insert(). Вставка используется для вставки одного или нескольких элементов данных в массив. В зависимости от требования новый элемент может быть добавлен в начало, конец или любой заданный индекс массива. append() также используется для добавления значения, указанного в его аргументах, в конец массива.
Python3
i in range ( 0 , 3 ): |
Выход:
ARRRAM Массив после вставки: 1 4 2 3 Массив перед вставкой: 2,5 3,2 3,3 Массив после вставки: 2. 5 3.2 3.3 4.4
Сложности добавления элементов в массивы:
Сложность времени: O(1)/O(n) ( O(1) – для вставки элементов в конец массива, O(n) — для вставки элементов в начало массива и до всего массива
Вспомогательный пробел: O(1)
Доступ к элементам массива
Для доступа к элементам массива обращайтесь к порядковому номеру. Используйте оператор индекса [ ] для доступа к элементу массива. Индекс должен быть целым числом.
Python3
|
Выход:
Элемент доступа: 1 Элемент доступа: 4 Элемент доступа: 3.2 Элемент доступа: 3.3
Сложности доступа к элементам в массивах:
Сложность времени: O(1)
Вспомогательное пространство: O(1)
Удаление элементов из массива
3 Элементов можно удалить 9 из массива с помощью встроенной функции remove(), но возникает ошибка, если элемент не существует в наборе. Метод Remove() удаляет только один элемент за раз, для удаления диапазона элементов используется итератор. Функцию pop() также можно использовать для удаления и возврата элемента из массива, но по умолчанию она удаляет только последний элемент массива, для удаления элемента из определенной позиции массива индекс элемента передается как аргумент метода pop().
Примечание. Метод Remove в списке удалит только первое вхождение искомого элемента.
Python3
|
Вывод: 1 5 3 1
Новый массив создан Выдвинутый элемент: 3 Массив после извлечения: 1 2 1 5 Массив после удаления: 2 1 5
Сложности для удаления элементов в массивах:
Временная сложность: O(1)/O(n) ( O(1) – для удаления элементов в конце массива, O(n) – для удаления элементов в начале массива и до всего массива
Вспомогательный пробел: O(1)
Разбиение массива на срезы
В массиве Python есть несколько способов напечатать весь массив со всеми элементами, но для печати определенного диапазона элементов из массива мы используем операцию Slice. Операция Slice выполняется для массива с использованием двоеточия(:).Чтобы напечатать элементы от начала до диапазона, используйте [:Index], для печати элементов с конца используйте [:-Index], для печати элементов из определенного индекса до конечного используйте [Index:], для печати элементов в пределах диапазона используйте [Начальный индекс:Конечный индекс] и для печати всего списка с использованием операции нарезки, используйте [ :]. Далее, чтобы напечатать весь массив в обратном порядке, используйте [::-1].
Python3
|
Выход
Исходный массив: 1 2 3 4 5 6 7 8 9 10 Элементы нарезки в диапазоне 3-8: массив('i', [4, 5, 6, 7, 8]) Элементы, нарезанные от 5-го элемента до конца: массив('i', [6, 7, 8, 9, 10]) Печать всех элементов с использованием операции среза: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Поиск элемента в массиве
Для поиска элемента в массиве мы используем python встроенный метод index(). Эта функция возвращает индекс первого вхождения значения, упомянутого в аргументах.
Python3
|
Выход:
. Индекс 1-го вхождения 2: 1 Индекс 1-го появления 1: 0
Сложности для поиска элементов в массивах:
Временная сложность: O(n)
Вспомогательное пространство: O(1)
Обновление элементов в массиве
Для обновления элемента в массиве мы просто переназначаем новое значение желаемому индексу, который хотим обновить.
Python3
= |
Output:
Array before updation : 1 2 3 1 2 5 Массив после обновления: 1 2 6 1 2 5 Массив после обновления: 1 2 6 1 8 5
Сложности обновления элементов в массивах:
Временная сложность: O(n)
Вспомогательное пространство: O(1)
Массивы в Python: как их использовать?
Массивы в Python — это структуры данных, которые могут содержать несколько значений одного типа. Часто их ошибочно принимают за списки или массивы Numpy. Технически массивы в Python отличаются от них обоих. Итак, давайте продолжим и посмотрим, что такое массивы в Python и как реализовать .
Вот обзор тем, который объясняет все аспекты, связанные с массивами:
Вы можете просмотреть запись вебинара о массивах Python, где наш эксперт по обучению Python подробно объяснил темы с примерами, которые помогут вам понять все концепции, связанные с массивами Python.
Массивы в Python | Операции с массивами Python | EdurekaЭто видео поможет вам прочно усвоить все основы языка программирования Python.
Зачем использовать массивы в Python?
Комбинация массивов вместе с Python может сэкономить вам много времени. Как упоминалось ранее, массивы помогают уменьшить общий размер кода, а Python помогает избавиться от проблемного синтаксиса, в отличие от других языков.
Например, : Если вам нужно хранить целые числа от 1 до 100, вы не сможете явно запомнить 100 имен переменных, поэтому вы можете легко сохранить их, используя массив.
Теперь, когда вы знаете о важности массивов в Python, давайте изучим их подробнее.
Что такое массив в Python?Массив в основном представляет собой структуру данных , которая может содержать более одного значения одновременно. Это набор или упорядоченный ряд элементов одного типа.
Пример :
a=arr.array('d',[1.2,1.3,2.3])
Мы можем легко просмотреть элементы массива и получить необходимые значения, просто указав номер индекса. Массивы также изменяемы (изменяемы), поэтому вы можете выполнять различные манипуляции по мере необходимости.
Всегда возникает вопрос, который приходит нам на ум —
Является ли список Python таким же, как массив?Python Массивы и списки хранят значения аналогичным образом. Но между ними есть ключевое различие, то есть значения, которые они хранят. Список может хранить значения любого типа, такие как целые числа, строки и т. д. С другой стороны, массивы хранят значения одного типа данных. Таким образом, вы можете иметь массив целых чисел, массив строк и т. д.
Python также предоставляет массивы Numpy, которые представляют собой сетку значений, используемых в науке о данных. Вы можете изучить Numpy Arrays vs Lists, чтобы узнать больше.
Создание массива в Python:Массивы в Python могут быть созданы после импорта модуля массива следующим образом:
→ импорт массива как arr
первый — это тип данных сохраняемого значения, а второй — список значений. Тип данных может быть любым, например, int, float, double и т. д. Обратите внимание, что arr — это псевдоним, предназначенный для простоты использования. Вы также можете импортировать без псевдонима. Есть еще один способ импортировать модуль массива —
→ импорт из массива *
Это означает, что вы хотите импортировать все функции из модуля массива.
Для создания массива используется следующий синтаксис.
Синтаксис:
a=arr.array(тип данных,список значений) #при импорте с использованием псевдонима arr
ИЛИ
a=массив(тип данных,список значений) #при импорте с помощью *
Пример : a=arr.array( ‘d’ , [1.1 , 2.1 ,3.1] )
Здесь первым параметром является «d», который является типом данных, т. е. числом с плавающей запятой, а значения указываются в качестве следующего параметра.
Примечание :
Все указанные значения имеют тип float. Мы не можем указывать значения разных типов данных в одном массиве.
В следующей таблице показаны различные типы данных и их коды.
Код типа | Тип данных Python | Размер в байтах |
i | int | 2 |
I | int | 2 |
u | unicode character | 2 |
h | int | 2 |
H | int | 2 |
l | int | 4 |
L | int | 4 |
f | float | 4 |
d | float | 8 |
Для доступа к элементам массива необходимо указать значения индекса. Индексация начинается с 0, а не с 1. Следовательно, номер индекса всегда на 1 меньше длины массива.
Синтаксис :
Имя_массива[значение индекса]
Пример :
a=arr.array('d', [1.1, 2.1, 3.1]) а[1]
Вывод –
2.1
Возвращаемый вывод представляет собой значение, присутствующее на втором месте в нашем массиве, которое равно 2.1.
Теперь давайте рассмотрим некоторые основные операции с массивами.
Основные операции с массивами :Существует много операций, которые можно выполнять с массивами, а именно:
Определение длины массиваДлина массива — это количество элементов, которые фактически присутствуют в массиве. Вы можете использовать len() для достижения этой цели. Функция len() возвращает целочисленное значение, равное количеству элементов, присутствующих в этом массиве.
Синтаксис :
→ len(имя_массива)
Пример :
a=arr.array('d', [1.1, 2.1, 3.1]) Лена)
Вывод – 3
Это возвращает значение 3, равное количеству элементов массива.
Добавление/изменение элементов массива:Мы можем добавить значение в массив, используя функции append() , extend() и insert (i,x) .
Функция append() используется, когда нам нужно добавить один элемент в конец массива.
Пример :
a=arr.array('d', [1.1, 2.1, 3.1]) а. добавить (3.4) печать (а)
Выходные данные –
массив(‘d’, [1.1, 2.1, 3.1, 3.4])
Результирующий массив является фактическим массивом с добавленным в конце новым значением. Чтобы добавить более одного элемента, вы можете использовать функцию extend(). Эта функция принимает список элементов в качестве параметра. Содержимое этого списка — это элементы, которые нужно добавить в массив.
Пример :
a=arr.array('d', [1.1, 2.1, 3.1]) а.продлить([4.5,6.3,6.8]) печать (а)
Выходные данные –
массив(‘d’, [1.1, 2.1, 3.1, 4.5, 6.3, 6.8])
Результирующий массив будет содержать все 3 новых элемента, добавленных в конец массива.
Однако, когда вам нужно добавить определенный элемент в определенную позицию в массиве, можно использовать функцию вставки (i,x). Эта функция вставляет элемент по соответствующему индексу в массиве. Он принимает 2 параметра, где первый параметр — это индекс, в который нужно вставить элемент, а второй — значение.
Пример :
a=arr.array('d', [1.1, 2.1, 3.1]) а.вставить(2,3.8) печать (а)
Выход –
массив(‘d’, [1.1, 2.1, 3.8, 3.1])
Результирующий массив содержит значение 3.8 на 3-й позиции в массиве.
Массивы также можно объединять, выполняя конкатенацию массивов.
Объединение массивов :Любые два массива могут быть объединены с помощью символа +.
Пример :
a=arr.array('d',[1.1, 2.1,3.1,2.6,7.8]) b=массив.массив('d',[3.7,8.6]) c=arr.массив('d') с=а+б печать("Массив с = ",с)
Вывод –
Массив c= array(‘d’, [1.1, 2.1, 3.1, 2.6, 7.8, 3.7, 8.6])
Результирующий массив c содержит конкатенированные элементы массивов a и b.
Теперь давайте посмотрим, как можно удалять или удалять элементы из массива.
Узнайте о нашем обучении Python в лучших городах/странах
Удаление/удаление элементов массива :Элементы массива могут быть удалены с помощью метода pop() или remove() . Разница между этими двумя функциями заключается в том, что первая возвращает удаленное значение, а вторая — нет.
Функция pop() либо не принимает никаких параметров, либо принимает в качестве параметра значение индекса. Когда параметр не задан, эта функция извлекает () последний элемент и возвращает его. Когда вы явно указываете значение индекса, функция pop() извлекает требуемые элементы и возвращает их.
Пример :
a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6]) печать (а.поп()) печать (a.pop (3))
Выход –
4,6 3.1
Первая функция pop() удаляет последнее значение 4.6 и возвращает то же самое, а вторая извлекает значение на 4-й позиции, равное 3.1, и возвращает то же самое.
Функция remove(), с другой стороны, используется для удаления значения, когда нам не нужно возвращать удаленное значение. Эта функция принимает само значение элемента в качестве параметра. Если вы укажете значение индекса в слоте параметра, это вызовет ошибку.
Пример :
a=arr. array('d',[1.1, 2.1,3.1]) а.удалить(1.1) печать (а)
Вывод –
array(‘d’, [2.1,3.1])
Вывод – массив, содержащий все элементы, кроме 1.1.
Если вам нужен определенный диапазон значений из массива, вы можете разрезать массив, чтобы вернуть то же самое, как показано ниже.
Разрезание массива :Массив можно разрезать с помощью символа :. Это возвращает диапазон элементов, которые мы указали по номерам индексов.
Пример :
a=arr.array('d',[1.1, 2.1,3.1,2.6,7.8]) печать (а [0: 3])
Выходные данные –
массив(‘d’, [1.1, 2.1, 3.1])
Результатом будут элементы, находящиеся на 1-й, 2-й и 3-й позициях в массиве.
Перебор массива:Используя цикл for, мы можем перебрать массив.
Пример :
a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1. 2, 4.6]) распечатать("Все значения") для х в: печать (х) print("конкретные значения") для х в a[1:3]: печать (х)
Выход -
Все значения
1,1
2,2
3,8
3,1
3,7
1,2
4,6
Специфические значения
2,2
3,8
Выведенный выше Когда мы используем цикл for без каких-либо конкретных параметров, результат содержит все элементы массива, заданные по одному. Во втором цикле for результат содержит только те элементы, которые указаны с помощью значений индекса. Обратите внимание, что результат не содержит значения индекса 3.
Надеюсь, вы усвоили все, о чем вам рассказали в этом руководстве. На этом мы подошли к концу нашей статьи о массивах в Python. Убедитесь, что вы тренируетесь как можно больше и возвращаете свой опыт.
Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев этого блога «Массивы в Python», и мы свяжемся с вами как можно скорее или присоединимся к нашему мастер-курсу Python.