Функция Numpy append () используется для объединения двух массивов. Функция append () возвращает новый массив, а исходный массив остается неизменным. В Python numpy иногда нам нужно объединить два массива. Поэтому для этого нам нужно использовать функцию numpy.append (). Функция append () используется для добавления одного массива к другому, а затем возвращает объединенный массив.
- Что такое numpy append ()
- Синтаксис
- Параметры
- Возвращаемое значение
- Пример программирования
- Program1: Работа с одномерным массивом
- Вывод
- Программа2: Работа с 2D-массивом
- Вывод
- Сведение двух массивов в Numpy
- Вывод
- Объединение двух массивов вдоль оси с помощью np.append ()
- Вывод
- Python numpy: ValueError
- Вывод
- Numpy append vs. concatenate.
- См. также
Что такое numpy append ()
NumPy используется для работы с массивами. Объект массива в Numpy называется ndarray . Мы можем создать объект NumPy ndarray с помощью функции array (). Метод Numpy.append () добавляет значения вдоль указанной оси в конец массива.
Синтаксис
numpy.append (array, values, axis = None)
Параметры
numpy.append () принимает три аргумента, это:
- array: это может быть массив или объект массива, к которому добавление будет выполнено с некоторыми значениями.
- values : это значение, к которому нужно добавить array.
- Axis : определяет ось массива, вдоль которой должно быть добавлено значение. В основном есть два типа осей:
-
- axis = 1 -> указывает ось первой строки.
- axis = 0 -> предлагает ось первого столбца.
Возвращаемое значение
Функция append () возвращает копию массива со значениями, добавленными в конце в соответствии с указанная ось.
Пример программирования
Program1: Работа с одномерным массивом
# Импорт numpyimport numpy как np # Мы создадим одномерный массив # это создаст массив со значениями от 0 до 5arr1 = np.arange (6) # Печать массиваprint ("Первый массив:", arr1) # Создание второго массива arr2 = np.arange (10, 16) print ("Второй массив:", arr2) # Теперь мы добавим arr2 к arr1 # результат будет скопирован в новый массив arr = np.append (arr1, arr2) # Печать нового массиваprint ("После добавления новый массив:", arr)
Вывод
Первый массив: [0 1 2 3 4 5] Второй массив: [10 11 12 13 14 15] После добавления новый массив: [0 1 2 3 4 5 10 11 12 13 14 15]
В этой программе мы видим, что сначала мы создали два массива с помощью функции arange (), которая создает массив с некоторым заданным диапазоном значений. После этого мы распечатали эти два массива соответственно.
Наконец, мы вызвали функцию append () , в которой мы добавили arr2 к arr1. Здесь мы видим одну вещь: мы не указали ось в этом случае, потому что данные массивы являются одномерными. Ось определяется в многомерном массиве.
Программа2: Работа с 2D-массивом
# Импорт numpyimport numpy как np # Создание 2D-массива с формой 2x3arr1 = np.array ([(1, 2, 3), (4, 5, 6)]) print (" Первый массив: n ", arr1) # Создание второго 2D-массива с использованием функции arange # Это создаст 2D-массив формы 2x3 со значениями от 10 до 15arr2 = np.arange (10, 16) .reshape (2, 3 ) print ("Второй массив: n", arr2) # Теперь мы сначала добавим массив по оси 1arr3 = np.append (arr1, arr2, axis = 1) print ("После добавления по оси 1, новый массив is: n ", arr3) # Теперь мы сначала добавим массив по оси 0arr4 = np.append (arr1, arr2, axis = 0) print (" После добавления по оси 0 новый массив будет: n ", arr4 )
Вывод
Первый массив: [[1 2 3] [4 5 6]] Второй массив : [[10 11 12] [13 14 15]] После добавления по оси 1 новый массив будет: [[1 2 3 10 11 12] [4 5 6 13 14 15]] После добавления по оси 0 новый массив будет : [[1 2 3] [4 5 6] [10 11 12] [13 14 15]]
В этой программе мы создали массив с помощью numpy arange () и объявили два массива с формой 2 × 3 двумя разными способами. Затем мы вызвали функцию append (), чтобы добавить arr2 к arr1 по оси 1, что означает, что это добавит row1 arr1 с row1 arr2 и так далее.
Затем мы снова вызвали append () функция для добавления arr2 к arr1 с осью = 0, что означает, что она добавит столбец 1 arr1 со столбцом 1 arr2 и так далее.
Наконец, мы можем увидеть результат этих двух операций.
Сведение двух массивов в Numpy
Под « уплощением» массива мы подразумеваем взятие многомерного массива и превращение его в обычный «одномерный» array .
См. следующий код.
# app.pyimport numpy as nparrA = np.array ([[11, 21], [30, 46]]) arrB = np.array ([[19, 21], [46, 21]]) # ось не указана, элементы массива будут плоскими. Arr_flat = np.append (arrA, arrB) print (arr_flat)
Вывод
python3 app.py [11 21 30 46 19 21 46 21]
Как видим, мы не предоставили никаких ось; поэтому он сглаживает массив.
Объединение двух массивов вдоль оси с помощью np.append ()
Мы можем объединить два массивы вдоль оси с помощью функции numpy append (). См. Следующий код.
import numpy as nparr_merge_axis0 = np.append ([[11, 21], [29, 46]], [[19, 21], [37, 10]] , axis = 0) print (f 'Объединенные массивы 2x2 вдоль оси-0: n {arr_merge_axis0}') arr_merge_axis1 = np.append ([[11, 21], [29, 46]], [[19, 21] , [37, 10]], axis = 1) print (f 'Объединенные массивы 2x2 вдоль оси-1: n {arr_merge_axis1}')
Вывод
приложение python3. pyMerged 2x2 массивы вдоль оси-0: [[11 21] [29 46] [19 21] [37 10]] Объединенные массивы 2x2 вдоль оси-1: [[11 21 19 21] [29 46 37 10]]
Из вывода мы можем вывести следующие утверждения.
- Когда массивы 2 × 2 объединяются вместе с осью x, размер выходного массива равно 4 × 2.
- Когда массивы 2 × 2 объединяются вместе с осью Y, размер выходного массива составляет 2 × 4.
Python numpy: ValueError
Давайте посмотрим на пример, в котором будет вызвано ValueError.
импортировать numpy как nparr = np.append ([[11, 21]], [[10, 19, 46]], axis = 0) print (arr)
Вывод
python3 app.pyTraceback (последний вызов последним): файл «app.py», строка 3, в arr = np.append ([[11, 21]], [[10, 19, 46]], ось = 0) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/numpy/lib/function_base.py", строка 4689, в добавлении return concatenate ( (arr, values), axis = axis) ValueError: все размеры входного массива за исключением того, что ось конкатенации должна точно совпадать
Формы массива: 1 × 2 и 2 × 3 . Итак, формы оси-1 разные; именно поэтому возникает ошибка ValueError.
Numpy append vs. concatenate.
Numpy concatenate () работает немного быстрее, а append () выравнивает массив, если ось не указана. Np.append использует np.concatenate. См. Следующий фрагмент.
def append (arr, values, axis = None): arr = asanyarray (arr) if axis is None: if arr.ndim! = 1: arr = arr.ravel () values = ravel (values) axis = arr.ndim-1 return concatenate ((arr, values), axis = axis)
Вы можете видеть, что функция append () использует конкатенацию в базовом выполнение.
Функция Numpy append () добавляет значения в конец входного массива. Операция добавления не выполняется, и выделяется новый массив. Здесь следует отметить, что размеры входных массивов должны совпадать; в противном случае возникнет ошибка ValueError .
См. также
Numpy delete ()
Цифровая вставка ()
Цифровая вставка ()