Автор оригинала: Team Python Pool.
Ось Numpy в Python С подробными Примерами
Здравствуйте программисты, в сегодняшней статье мы обсудим и объясним ось Numpy в python. Понять использование осей в массиве Numpy не очень просто. Но давайте начнем с этого. Ось Numpy очень похожа на оси в декартовой системе координат. Прежде чем мы начнем с того, как Numpy axes, позвольте мне немного подробнее познакомить вас с концепцией Numpy axis.
Ось Numpy-это тип направления, через которое начинается итерация. Каждая операция в numpy имеет определенный итерационный процесс, через который она проходит. Кроме того, существует два типа итерационного процесса: порядок столбцов и порядок Фортрана. Порядок столбцов помогает через ось столбцов, а порядок Fortran помогает через ось строк.
Направления оси Numpy
Ось 0 (Направление вдоль строк) – Ось 0 называется первой осью массива Numpy. Эта ось 0 проходит вертикально вниз вдоль строк многомерных массивов Numpy, то есть выполняет операции по столбцам.
Ось 1 (Направление вместе со столбцами ) – Ось 1 называется второй осью многомерных массивов Numpy. В результате ось 1 суммируется по горизонтали вместе со столбцами массивов. Он выполняет операции по строкам.
ПРИМЕЧАНИЕ: Приведенное выше описание оси Numpy предназначено только для 2D-и многомерных массивов. Он работает по-другому для 1D-массивов, обсуждаемых далее в этой статье.
Способы реализации оси Numpy в Python
- Строки и столбцы для массива Numpy.
- Ось Numpy для суммы.
- Ось Numpy для конкатенации.
- ID Array Numpy axis.
Строки и столбцы для массива Numpy
ПРИМЕР:
From numpy import asarray data = [[1,2,3], [4,5,6]] # convert to a numpy array(data) # step through rows for row in range(data.shape[0]): print(data[row, :]) #step through columns for col in range(data.shape[1]): print(data[:, col])
ВЫХОД:
[1 2 3] [4 5 6] [1 4] [2 5] [3 6]
ОБЪЯСНЕНИЕ:
В приведенном выше примере мы перечисляем данные каждой строки и столбца. Другими словами, мы достигаем этого, получая доступ к ним через их индекс. Данные[0, 0] дают значение в первой строке и первом столбце. Кроме того, data[0,:] дает значения в первой строке и во всех столбцах, например, полную первую строку в нашей матрице. Аналогично, data[:, 0] обращается ко всем строкам первого столбца. Прежде всего, при печати строк массива ось Numpy устанавливается в 0, то есть data.shape[0]. Аналогично, ось Numpy устанавливается в 1 при перечислении столбцов.
Ось Numpy в Python для Sum
Когда мы используем функцию numpy sum() для 2-d массива с параметром axis, она сворачивает 2-d массив до 1-d массива. Он сворачивает данные и уменьшает количество измерений. Но какая ось свернется, чтобы вернуть сумму, зависит от того, установим ли мы ось в 0 или 1. Давайте рассмотрим следующие примеры для лучшего понимания.
Numpy sum с осью 0
import numpy as np #creating Numpy Array.arange(0, 6).reshape([2,3]) print(np_array_2d) .sum(np_array_2d,) print(a)
Выход:
[[0 1 2] [3 4 5]] array([3, 5, 7])
Объяснение:
В приведенном выше примере мы создаем массив размера(2,3), то есть две строки и три столбца. Когда ось установлена на 0. Сразу же функция фактически суммирует столбцы. В результате получается новый массив NumPy, содержащий сумму каждого столбца. Как обсуждалось ранее, ось 0-это направление вдоль строк, но выполняет операции по столбцам. Ось, установленная в 0, относится к агрегированию данных. Поэтому мы сворачиваем строки и выполняем операцию суммирования по столбцам. Таким образом, параметр оси функции sum() представляет, какая ось должна быть свернута.
Numpy Sum С Осью 1
import numpy as np #creating Numpy Array.arange(0, 6).reshape([2,3]) print(np_array_2d) .sum(np_array_2d,) print(a)
Выход:
array([3, 12])
Объяснение:
Как мы знаем, ось 1, согласно конвенции оси. Например, это относится к направлению вдоль столбцов, выполняющих операции над строками. Для функции sum (). Параметр axis-это ось, которая должна быть свернута. Отсюда и в приведенном выше примере. Например, ось установлена на 1 в функции sum (), которая сворачивает столбцы и суммирует строки.
Ось Numpy для конкатенации двух массивов
Параметр axis, который мы используем с функцией numpy concatenate (), определяет ось, вдоль которой мы складываем массивы. Мы получаем различные типы сцепленных массивов в зависимости от того, установлено ли значение параметра оси равным 0 или 1. Кроме того, чтобы иметь более четкое представление о том, что говорится, обратитесь к приведенным ниже примерам.
Конкатенация Np массивов с осью 0
import numpy as np #arrays defined.array([[1,1,1],[1,1,1]]).array([[2,2,2],[2,2,2]]) print(np_array_1) print(np_array_2) .concatenate([np_array_1, np_array_2],) print(a)
Выход:
array([[1, 1, 1], [1, 1, 1]]) array([[2, 2, 2], [2, 2, 2]]) array([[1, 1, 1], [1, 1, 1], [2, 2, 2], [2, 2, 2]])
Объяснение:
Как уже упоминалось, параметр axis в функции ‘concatenate()’ подразумевает укладку массивов. Поэтому, когда мы устанавливаем ось в 0, функция concatenate складывает два массива вдоль строк. Мы указываем, что хотим конкатенации массивов. Конкатенация выполняется вдоль оси 0, то есть вдоль направления строк. Таким образом, мы получаем результат в виде сложенного массива. И два составных массива вдоль рядов.
Конкатенация массивов Numpy с осью 1
import numpy as np #arrays defined.array([[1,1,1],[1,1,1]]).array([[2,2,2],[2,2,2]]) print(np_array_1) print(np_array_2) .concatenate([np_array_1, np_array_2],) print(a)
Выход:
array([[1, 1, 1], [1, 1, 1]]) array([[2, 2, 2], [2, 2, 2]]) array([[1, 1, 1, 2, 2, 2], [1, 1, 1, 2, 2, 2]])
Объяснение:
В приведенном выше примере параметр axis имеет значение 1. Например, мы знаем, что ось 1 определяет направление вместе со столбцами. Прежде всего это подразумевает функцию numpy concatenate() для объединения двух входных данных href=”https://en.wikipedia.org/wiki/Array_data_structure”>массивы. После этого конкатенация выполняется горизонтально вместе со столбцами. href=”https://en.wikipedia.org/wiki/Array_data_structure”>массивы. После этого конкатенация выполняется горизонтально вместе со столбцами.
1D Массив NP Axis в Python – Особый случай
Оси numpy работают по-разному для одномерных массивов. Большая часть обсуждения, которое мы провели в этой статье, относится к двумерным массивам с двумя осями- строками и столбцами. Массивы 1D отличаются тем, что они имеют только одну ось. Оси Numpy нумеруются так же, как индексы Python, то есть они начинаются с 0. Поэтому в массиве 1D первой и единственной осью является ось 0. Если мы зададим параметр axis как 1 при работе с 1D массивами. Кроме того, он возвращает ошибку.
Оси numpy работают по-разному для одномерных массивов. Большая часть обсуждения, которое мы провели в этой статье, относится к двумерным массивам с двумя осями- строками и столбцами. Массивы 1D отличаются тем, что они имеют только одну ось. Оси Numpy нумеруются так же, как индексы Python, то есть они начинаются с 0. Поэтому в массиве 1D первой и единственной осью является ось 0. Если мы зададим параметр axis как 1 при работе с 1D массивами. Кроме того, он возвращает ошибку.
import numpy as np #arrays defined.array([1,1,1]).array([[2,2,2]) print(np_array_1) print(np_array_2) .concatenate([np_array_1, np_array_2],) .concatenate([np_array_1, np_array_2],) print(a) print(b)
Выход:
[1 1 1] [2 2 2] array([1, 1, 1, 2, 2, 2]) IndexError: axis 1 out of bounds [0, 1)
Объяснение:
Как уже упоминалось выше, 1-мерные массивы имеют только одну ось – ось 0. Функция работает правильно, когда параметр оси установлен в 1. Он печатает “а” как комбинированный 1D-массив из двух входных 1D-массивов. В 1D массивах ось 0 не указывает вдоль строк “вниз”, как это происходит в 2-мерном массиве. Однако, когда параметр axis установлен в 1, он не может напечатать “b”. В заключение он поднял indexerror, заявив, что ось 1 находится за пределами границ для одномерных массивов.
Вывод
В заключение можно сказать, что в этой статье мы очень подробно рассмотрели Numpy axes в python. Ось Numpy в python используется для реализации различных операций по строкам и столбцам. Такие операции, как numpy sum (), np mean() и concatenate (), достигаются путем передачи осей numpy в качестве параметров. Мы также можем перечислять данные массивов по их строкам и столбцам с помощью оси numpy. Также выделен частный случай оси для одномерных массивов. Это необходимо иметь в виду при реализации программ на python.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!