Как добавить элементы в массив NumPy (3 примера)
Вы можете использовать следующие методы для добавления одного или нескольких элементов в массив NumPy:
Способ 1: добавить одно значение в конец массива
#append one value to end of array new_array = np.append(my_array, 15)
Способ 2: добавить несколько значений в конец массива
#append multiple values to end of array new_array = np.append(my_array, [15, 17, 18])
Способ 3: вставить одно значение в определенную позицию в массиве
#insert 95 into the index position 2 new_array = np.insert (my_array, 2, 95)
Способ 4: вставить несколько значений в определенную позицию в массиве
#insert 95 and 99 starting at index position 2 of the NumPy array new_array = np.insert (my_array, 2, [95, 99])
В этом руководстве объясняется, как использовать каждый метод на практике со следующим массивом NumPy:
import numpy as np #create NumPy array my_array = np.array([1, 2, 2, 3, 5, 6, 7, 10]) #view NumPy array my_array array([ 1, 2, 2, 3, 5, 6, 7, 10])
Пример 1: добавление одного значения в конец массива
В следующем коде показано, как использовать np.append() для добавления одного значения в конец массива NumPy:
#append one value to end of array new_array = np.append(my_array, 15) #view new array new_array array([ 1, 2, 2, 3, 5, 6, 7, 10, 15])
В конец массива NumPy добавлено значение 15 .
Пример 2. Добавление нескольких значений в конец массива
В следующем коде показано, как использовать np.append() для добавления нескольких значений в конец массива NumPy:
#append multiple values to end of array new_array = np.append(my_array, [15, 17, 18]) #view new array new_array array([ 1, 2, 2, 3, 5, 6, 7, 10, 15, 17, 18])
Значения 15 , 17 и 18 были добавлены в конец массива NumPy.
Пример 3. Вставка одного значения в определенную позицию в массиве
В следующем коде показано, как вставить одно значение в определенную позицию в массиве NumPy:
#insert 95 into the index position 2 new_array = np.insert (my_array, 2, 95) #view new array new_array array([ 1, 2, 95, 2, 3, 5, 6, 7, 10])
Значение 95 было вставлено в позицию индекса 2 массива NumPy.
Пример 4. Вставка нескольких значений в определенную позицию в массиве
В следующем коде показано, как вставить несколько значений, начиная с определенной позиции в массиве NumPy:
#insert 95 and 99 starting at index position 2 of the NumPy array new_array = np.insert (my_array, 2, [95, 99]) #view new array new_array array([ 1, 2, 95, 99, 2, 3, 5, 6, 7, 10])
Значения 95 и 99 были вставлены, начиная с позиции индекса 2 массива NumPy.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в NumPy:
Модуль 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) в python
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 в комментарий заключайте его в теги
Массивы
Массив (англ. array) - структура данных, хранящая набор значений. Каждое значение из набора индексируется, т.е. значения имеют номера (индексы).
Простейший массив имеет следующий интерфейс
- создать(A, N) -> массив A длины N - создание массива A размера N .
- записать(A, i, x) - записывает значение x в i -ый элемент массива A .
- считать(A, i) -> элемент массива A с индексом i - взятие элемента по индексу (чтение).
- удалить(A) - удаление массива А .
Обычно индексами массива являются целые положительные числа, причём в непрерывном диапазоне. Например, 0, 1, 2. N-2, N-1 , где N - размер массива. В таком случае массив упорядочен по индексу и можно говорить, что массив также является последовательностью.
Для массива операции чтения и записи выполняются за O(1) , т.е. время этих операций не зависит от количества элементов в массиве.
Массив в Python
Массив в Python
упорядоченная изменяемая последовательность. массив хранит множество элементов, которые образуют последовательность. При этом можно изменять как сами элементы массива, так и сам массив: пополнять массив новыми элементами или удалять их. . объектов произвольных типов элементами массива являются Python-объекты. При этом допускается, чтобы в одном массиве хранились объекты разных типов.
Массивы в Python также называют списками или листами (англ. list). Терминология в других языках программирования, а также в теории алгоритмов может быть другая.
Список Python является гибким в использовании объектом. Как инструмент, программист может использовать списки, например, для создания элементов линейной алгебры: точек, векторов, матриц, тензоров. Или, например, для таблицы с некоторыми данными.
Важно заметить, что , питоновский список, является универсальной структурой данных. В том числе, ей можно пользоваться как массивом (что мы и будем делать)! То есть, у этого объекта есть интерфейс, описанный в предыдущем разделе, причём с теми же асимптотиками, хотя возможности выходят гораздо за пределы простейшего массива.
Создание массива
Литерал массива
Массив можно создать при помощи литералов. Литерал - это код, который используется для создания объекта "вручную" (задания константы). Например, некоторые литералы уже изученных ранее объектов:
- int : 5 , -23
- float : 5. , 5.0 , -10.81 , -1.081e1
- str : 'ABCdef' , "ABCdef"
В случае массива литералом являются квадратные скобки [] , внутри которых через запятую , перечисляются элементы массива:
>>> [] [] >>> [0, 1, 2, 3, 4] [0, 1, 2, 3, 4] >>> ['sapere', 'aude'] ['sapere', 'aude'] >>> ['Gravitational acceleration', 9.80665, 'm s^-2'] ['Gravitational acceleration', 9.80665, 'm s^-2'] >>> type([0, 1, 2, 3, 4])
Создание массива заданной длины, склеивание массивов
Чтобы создать массив наперёд заданной длины, нужно задать инициализируещее значение и длину. Ниже создаётся массив, содержащий 10 нулей.
>>> A = [0] * 10 >>> A [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >>> type(A)
С похожим синтаксисом мы сталкивались при работе со строками. Массивы в Python можно "склеивать" с помощью знака сложения:
>>> A = [0] * 3 # [0, 0, 0] >>> B = [1] * 3 # [1, 1, 1] >>> C = [2] * 3 # [2, 2, 2] >>> D = A + B + C >>> D [0, 0, 0, 1, 1, 1, 2, 2, 2]
На самом деле, умножение массива на целое число M это создание нового массива путём M "склеиваний" исходного массива с самим собой:
>>> [0, 1] * 3 [0, 1, 0, 1, 0, 1] >>> [0, 1] + [0, 1] + [0, 1] [0, 1, 0, 1, 0, 1]
Элементы массива: доступ и изменение
Выше мы убедились, что массив это множество объектов различных типов, теперь убедимся, что это упорядоченная последовательность изменяемых объектов.
Доступ по индексу
Для доступа к элементам массива используется операция взятия элемента по индексу. Для этого рядом с литералом или переменной массива необходимо подписать индекс элемента в квадратных скобках:
>>> ['Gravitational acceleration', 9.80665, 'm s^-2'][0] 'Gravitational acceleration' >>> ['Gravitational acceleration', 9.80665, 'm s^-2'][1] 9.80665 >>> ['Gravitational acceleration', 9.80665, 'm s^-2'][2] 'm s^-2' >>> l = [10, 20, 30] >>> l[0] 10 >>> l[1] 20 >>> l[2] 30
Нумерация элементов массива начинается с нуля.
При запросе элемента по несуществующему индексу, Python вызовет ошибку IndexError:
>>> l [10, 20, 30] >>> l[3] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range
Поэтому всегда нужно быть уверенным, что индексация не выходит за пределы длины массива. Получить её можно с помощью функции len() :
>>> l [10, 20, 30] >>> len(l) 3 >>> l[len(l) - 1] 30
Последняя конструкция встречается нередко, поэтому в Python существует возможность взять элемент по отрицательному индексу:
>>> l [10, 20, 30] >>> l[-1] 30 >>> l[-2] 20 >>> l[-3] 10 >>> l[-4] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range
Таким образом для индекса n ≥ 0, l[-n] эвивалентно l[len(l) - n] .
Изменение элементов
Изменение элементов осуществляется с помощью присваивания:
>>> l = [10, 20, 30] >>> l [10, 20, 30] >>> l[0] = 0 >>> l [0, 20, 30] >>> l[2] = 55 >>> l [0, 20, 55]
Доступ в цикле while
>>> l [0, 20, 55] >>> i = 0 >>> while i len(l): . print(i, l[i]) . i += 1 . 0 0 1 20 2 55 >>>
Доступ в цикле for
Наиболее универсальный способ это использование генератора range:
>>> l [0, 20, 55] >>> for i in range(len(l)): . print(i, l[i]) . 0 0 1 20 2 55
Печать массива
Чтобы распечатать элементы массива в столбец, воспользуйтесь циклом for , как в разделе выше.
Если нужно распечатать массив в строку, то воспользуйтесь функцией print :
>>> A = [0, 1, 2, 3] >>> print(*A) 0 1 2 3
Здесь знак * это операция развёртывания коллекции по аргументам функции. Функция print принимает на вход сколько угодно аргументов и действие выше эквиваленто следующему:
>>> print(A[0], A[1], A[2], A[3]) 0 1 2 3
Ремарка о строках
На самом деле, мы уже ранее сталкивались с массивами в предудыщих лабораторных, когда использовали строковый метод str.split :
>>> s = "ab cd ef1 2 301" >>> s.split() ['ab', 'cd', 'ef1', '2', '301']
Т.е. str.split , по умолчанию, разбивает строку по символам пустого пространства (пробел, табуляция) и создаёт массив из получившихся "слов".
Загляните в help(str.split) , чтобы узнать, как изменить такое поведение, и разбивать строку, например, по запятым, что является стандартом для представления таблиц в файлах csv (comma separated values).
Методом, являющимся обратным к операции str.split является str.join . Он "собирает" строку из массива строк:
>>> s 'ab cd ef1 2 301' >>> l = s.split() >>> l ['ab', 'cd', 'ef1', '2', '301'] >>> l[-1] = '430' >>> l ['ab', 'cd', 'ef1', '2', '430'] >>> ','.join(l) 'ab,cd,ef1,2,430' >>> ' -- '.join(l) 'ab -- cd -- ef1 -- 2 -- 430'
Работа с двумерными массивами
Как вам рассказали, в массиве мы можем хранить различные данные. В том числе в ячейке массива можем хранить другой массив. Давайте предположим, что в каждой ячейке массива размера N у нас будет храниться другой массив размера M . Таким образом мы можем построить таблицу или матрицу размера N x M .
Создание двумерного массива (матрицы) размера N x M в питоне:
a = [] for _ in range(n): a.append([0] * m)
a = [[0] * m for _ in range(n)]
Обращение к элементами двумерного массива:
a[i][j] = 5
Python Добавить элементы в массив
В Python нет определенного типа данных для представления массивов. Для представления массивов в Python можно использовать списки, модуль array, модуль NumPy. В этой статье мы рассмотрим возможные способы добавления элементов в массив в Python.
- Автор записи Автор: Pankaj Kumar
- Дата записи 09.04.2021
В Python нет определенного типа данных для представления массивов.
Для представления массивов в Python можно использовать следующее:
1. Добавление в массив с использованием списков
Если мы используем список в качестве массива, можно применить следующие методы для добавления элементов к нему:
- С помощью функции append() можно добавить элементы в конец массива.
- Используя функцию insert() можно вставлять элементы по заданному индексу.
- Функция extend() позволяет расширить список, добавляя в него элементы из другого списка.
Пример 1: Добавление элементов в массив с помощью функции append()
my_input = ['Engineering', 'Medical'] my_input.append('Science') print(my_input)
Вывод:
['Engineering', 'Medical', 'Science']
Пример 2: Добавление элементов в массив с использованием функции extend()
my_input = ['Engineering', 'Medical'] input1 = [40, 30, 20, 10] my_input.extend(input1) print(my_input)
Вывод:
['Engineering', 'Medical', 40, 30, 20, 10]
Пример 3: Добавление элементов в массив с использованием функции insert()
my_input = [1, 2, 3, 4, 5] print(f'Current Numbers List ') number = int(input("Please enter a number to be added:\n")) index = int(input(f'Enter the index between 0 and to add the given number:\n')) my_input.insert(index, number) print(f'Updated List ')
Вывод:
2. Добавление в массив с помощью модуля array
Если мы используем модуль array, нам доступны следующие методы для добавления элементов к нему:
- С помощью оператора + : результирующий массив представляет собой комбинацию элементов из обоих массивов.
- Функция append() добавляет элементы в конец массива.
- Функция insert() вставляет элементы по заданному индексу.
- Используя функцию extend() : она позволяет расширить список, добавляя элементы из обоих списков.
Пример:
import array s1 = array.array('i', [1, 2, 3]) s2 = array.array('i', [4, 5, 6]) print(s1) print(s2) s3 = s1 + s2 print(s3) s1.append(4) print(s1) s1.insert(0, 10) print(s1) s1.extend(s2) print(s1)
Вывод:
3. Добавление элементов в массив NumPy
Мы можем добавить элементы в NumPy Array, используя следующие методы:
- Функция append() добавляет элементы в конец массива.
- Функция insert() вставляет элементы по заданному индексу.
Пример:
import numpy # insert function arr1_insert = numpy.array([1, 23, 33]) arr2_insert = numpy.insert(arr1_insert, 1, 91) print(arr2_insert) # append function arr1_append = numpy.array([4, 2, 1]) arr2_append = numpy.append (arr1_append, [12, 13, 14]) print(arr2_append)
Выход:
[1, 91, 23, 33] [4, 2, 1, 12, 13, 14]
Заключение
Таким образом, в этой статье мы рассмотрели возможные способы добавления элементов в массив в Python.
Рекомендации
- Документация Python Array
- Документация Python NumPy
Читайте ещё по теме:
- Python Numpy – Умножьте постоянную на все элементы массива
- Python Numpy – добавить постоянную на все элементы массива
- Python numpy – создать одномерный массив
- Python Numpy – создать массив со случайными значениями
- Python Numpy – Получить максимальное значение массива
- Python Numpy – разделите все элементы массива постоянным
- Python Numpy Array – Итерация по всем элементам