Numpy append: как использовать функцию np append ()

Функция Numpy append () используется для объединения двух массивов. Функция append () возвращает новый массив, а исходный массив остается неизменным. В Python numpy иногда нам нужно объединить два массива. Поэтому для этого нам нужно использовать функцию numpy.append (). Функция append () используется для добавления одного массива к другому, а затем возвращает объединенный массив.

Вам необходимо установить numpy для этого учебника. Также проверьте свою версию numpy .

Что такое numpy append ()

NumPy используется для работы с массивами. Объект массива в Numpy называется ndarray . Мы можем создать объект NumPy ndarray с помощью функции array (). Метод Numpy.append () добавляет значения вдоль указанной оси в конец массива.

Синтаксис

 numpy.append (array, values, axis = None) 

Параметры

numpy.append () принимает три аргумента, это:

  1. array: это может быть массив или объект массива, к которому добавление будет выполнено с некоторыми значениями.
  2. values ​​: это значение, к которому нужно добавить array.
  3. 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]] 

Из вывода мы можем вывести следующие утверждения.

  1. Когда массивы 2 × 2 объединяются вместе с осью x, размер выходного массива равно 4 × 2.
  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 ()

Цифровая вставка ()

Цифровая вставка ()

Оцените статью
nanomode.ru
Добавить комментарий