Numpy предоставляет функцию, которая позволяет нам манипулировать данными, к которым можно получить доступ. Трехмерность означает, что мы можем использовать вложенные уровни массива для каждого измерения.
Чтобы создать трехмерный массив numpy, мы можем использовать простую функцию numpy.array() для отображения трехмерного массива.
Давайте рассмотрим пример и поймем, как создать трехмерный массив с определенным значением.
Исходный код:
import numpy as np arr1 = np.array([[[2,17], [45, 78]], [[88, 92], [60, 76]],[[76,33],[20,18]]]) print("Create 3-d array:\n",arr1) print("The dimension of the array:", arr1.ndim)
Вот реализация следующего кода:
- Как создать
- Нарезка трехмерного массива
- Массив 3d в 2d
- Ось трехмерного массива
- График
- Список 3d в массив
- numpy транспонирует трехмерный массив
- Сумма трехмерного массива
- numpy определяет 3d-массив
- numpy вращает трехмерный массив
- Функция where
- Пустой трехмерный массив
- Как изменить форму 3D-массива в 2D
- numpy инициализирует трехмерный массив
- Как добавить 3D-массив
- Как объединить
Как создать
Используя функцию NumPy reshape(), мы можем легко создать трехмерный массив NumPy в Python. В Python этот метод используется для формирования массива NumPy без изменения элементов массива.
Пример:
import numpy as np new_arr = np.array([[ 78, 23, 41, 66], [ 109, 167, 41, 28], [ 187, 22, 76, 88]]) b = new_arr.reshape(3, 2, 2) print("Created 3D array:\n",b) print("The dimension of the array:", b.ndim)
Вывод: в приведенном выше коде сначала мы импортировали библиотеку Python NumPy, а затем создали массив, используя файл np.array. Теперь используйте метод reshape(), в который мы передали форму и размер массива.
Вот снимок экрана следующего кода Python:
Нарезка трехмерного массива
Чтобы разрезать массив в Python, мы можем легко использовать индексацию и в этом методе переносить элементы из одного индекса в другой индекс.
В Python шаги нарезки таковы: начало: конец: шаг. Первый параметр — start, если мы не передаем этот параметр в примере, то по умолчанию он принимает значение 0. В этом случае конечный параметр будет считаться длиной массива.
Пример:
import numpy as np new_arr2 = np.array([[[178, 189, 567], [145, 239, 445], [197, 345, 678]], [[56, 78, 190], [46, 10, 11], [6, 2, 1]], [[45, 118, 203], [72, 119, 34], [87, 9, 5]]]) d= new_arr2[:2,1:,:2] print("slicing array:\n",d) print("The dimension of the array:", d.ndim)
Вывод: В приведенном выше коде мы только что создали простой массив и затем применили к нему метод среза. В этом примере мы выбрали длину массива как 2.
Массив 3d в 2d
- Для выполнения этой конкретной задачи мы можем использовать метод numpy reshape(), и эта функция поможет пользователю преобразовать трехмерный массив в двумерный массив. В Python изменение формы означает, что мы можем легко изменить форму массива, не меняя элементы.
Синтаксис:
numpy.reshape ( arr, newshape, order='C' )
Исходный код:
import numpy as np new_arr2 = np.array([[[13, 9], [161, 23]], [[128, 219], [109, 992]], [[42, 34], [ 128, 398]], [[236, 557], [645, 212]]]) b= np.reshape(new_arr2,(4,4)) print("Output array:\n",b) print("The dimension of the array:", b.ndim)
Вывод: В приведенной выше программе мы передали массив new_arr вместе с размером массива(количество строк и количество столбцов). Как только вы напечатаете «b», на выходе отобразится новый массив.
Вот скриншот следующего кода:
Ось трехмерного массива
Сначала мы создадим два массива numpy «arr1» и «arr2», используя функцию numpy.array(). Теперь используйте функцию объединения и сохраните их в переменной result. В Python метод concatenate поможет пользователю объединить два или более массивов numpy одинаковой формы вместе с осью.
В этом примере мы устанавливаем ось как 0, которая представляет массивы, соединенные горизонтально.
Исходный код:
import numpy as np arr1 = np.array([[2,6,7],[16,14,111]]) arr2 = np.array([[73,27,41],[77,21,19]]) result = np.concatenate([[arr1], [arr2]], axis = 0) print("Output array:\n",result) print("The dimension of the array:", result.ndim)
Вот результат выполнения следующего кода:
График
В этом примере мы импортировали библиотеку matplotlib для построения трехмерного графика, а также импортировали модуль mpl_toolkits для осей 3d, и он используется для добавления к нему новых осей типа axes 3d.
Здесь мы можем определить «результат» как типичный подграфик с трехмерной проекцией, а затем использовать метод среза для создания линейного объекта.
Как только вы воспользуетесь plt.figure(), он создает объект фигуры, а plt.show() открывает одно интерактивное окно, в котором отображается наша фигура.
Исходный код:
import matplotlib.pyplot as plt, numpy as np from mpl_toolkits.mplot3d import Axes3D arr1= np.array([[52,89,54], [103,423,934], [897,534,118]]) new_val = plt.figure() result = new_val.add_subplot(122, projection='3d') result.plot(arr1[:,0],arr1[:,1],arr1[:,2]) plt.show()
Вы можете обратиться к приведенному ниже снимку экрана:
Скриншот фрагмента:
Список 3d в массив
В этом примере нам нужно преобразовать список в трехмерный массив. Для выполнения этой задачи мы собираемся создать список с именем «new_lis», а затем использовать метод np.asarray() для преобразования входного списка в массив numpy, и эта функция доступна в модуле numpy.
Синтаксис:
numpy.asarray ( a, dtype=None, order=None, like=None )
Исходный код:
import numpy as np new_lis = [[[23, 45, 278],[ 189, 234, 445],[ 567, 421, 109],[ 18, 21, 188]]] new_output = np.asarray(new_lis) print(new_output) print(new_output.ndim)
Вот реализация следующего кода:
numpy транспонирует трехмерный массив
В этом примере мы создали простой массив numpy, в который передается целое число. Теперь объявите переменную result и используйте метод np.transpose(). В Python метод np.transpose() поможет пользователю преобразовать элементы строки в элементы столбца и превратить элементы столбца в элементы строки.
Этот метод может транспонировать трехмерный массив, и результатом этого метода является обновленный массив данного.
Синтаксис:
numpy.transpose ( a, axes=None )
Пример:
import numpy as np new_arr = np.array([[[23,45,21],[24,19,41],[39,84,12]]]) result = np.transpose(new_arr) print(result) print(result.ndim)
Вот выполнение следующего данного кода:
Сумма трехмерного массива
Используя метод np.sum(), мы можем решить эту проблему. В Python метод sum() суммирует элементы массива и внутри объекта массива.
Синтаксис:
numpy.sum ( arr, axis=None, dtype=None, out=None, keepdims= initial= where= )
Исходный код:
import numpy as np arr1 = np.array([[[ 56, 24, 16],[ 17, 18, 29], [64, 16, 18]], [[ 24, 27, 36],[ 18, 19, 26], [ 27, 13, 64]]]) b = np.sum(arr1,axis = 0) print(b) print("The dimension of the array:", b.ndim)
Вот скриншот следующего кода:
numpy определяет 3d-массив
Чтобы определить трехмерный массив, мы можем использовать метод numpy.ones(). В Python функция numpy.ones() заполняет значения единицей и всегда возвращает новый массив numpy заданной формы.
Синтаксис:
numpy.ones ( shape, dtype=None, order='C' like=None )
Исходный код:
import numpy as np arr1 = np.ones((3, 3, 3)) print(arr1) print("The dimension of the array:", arr1.ndim)
В приведенном выше коде сначала нам нужно импортировать библиотеку NumPy, а затем создать переменную «arr1», в которую мы передаем метод np.ones() для определения нового трехмерного массива.
Вот скриншот следующего кода:
numpy вращает трехмерный массив
Используя np.rot90, мы можем легко повернуть массив numpy на 90 градусов. В Python этот метод используется для поворота массива NumPy на 90 градусов.
Синтаксис:
numpy.rot ( m, k=1, axes=(0,1) )
Исходный код:
import numpy as np arr1 = np.array([[16, 18], [24, 43], [17, 19]]) arr1_3d = np.expand_dims(arr1, axis=0) # Add an extra dimension print("Original 3D Array:\n", arr1_3d) rotated_arr = np.rot90(arr1_3d, axes=(1, 2)) print("After rotating the array:\n", rotated_arr) print("The dimension of the array:", rotated_arr.ndim)
Вы можете обратиться к приведенному ниже снимку экрана:
Функция where
В Python этот метод используется для выбора элементов на основе условия и всегда возвращает элементы, выбранные из X и Y, и эта функция доступна в модуле Python Numpy.
Синтаксис:
numpy.where ( condition [, x, y ] )
Пример:
import numpy as np arr1 = np.array([[56, 1, 12], [3, 2, 14],[3,21,5]]) result = np.where(arr1<6) print(result) print(arr1[result])
В приведенном выше коде мы создали массив, а затем используем np. where(), в котором мы присваиваем условие a<6. Как только вы напечатаете «результат», на выходе отобразится новый трехмерный массив.
Вот скриншот следующего кода:
Пустой трехмерный массив
В этом примере мы собираемся использовать метод np.empty() для создания пустого массива. В Python эта функция не устанавливает значения в ноль. Он принимает только случайные значения.
Синтаксис:
numpy.empty ( shape, dtype=float, order='C' )
Примечание. Эти параметры определяют форму, тип данных и порядок. Он всегда будет возвращать массив неинициализированных данных.
Исходный код:
import numpy as np arr1 = np.empty((3, 3, 3)) print(arr1) print("The dimension of the array created:", arr1.ndim)
Вот выполнение следующего данного кода:
Как изменить форму 3D-массива в 2D
В Python изменение формы означает, что мы можем легко изменить форму массива, не меняя элементы.
Синтаксис:
numpy.reshape ( arr, newshape, order='C' )
Исходный код:
import numpy as np new_arr2 = np.array([[[42, 16], [567, 123]], [[345, 136], [445, 890]], [[567, 123], [789, 908]], [[678, 908], [645, 212]]]) result= np.reshape(new_arr2,(4,4)) print(result)
Как только вы напечатаете «результат», на выходе отобразится массив размером 4*4.
Вот выполнение следующего данного кода:
numpy инициализирует трехмерный массив
В Python для инициализации трехмерного массива мы можем легко использовать функцию np.array для создания массива, и как только вы напечатаете «arr1», на выходе отобразится трехмерный массив.
Исходный код:
import numpy as np arr1 = np.array([[[4,36], [134, 94]], [[976, 234], [189, 123]],[[56,21],[109,67]]]) print("Initialize 3-d array:",arr1) print("The dimension of the array initilzed:", arr1.ndim)
Как добавить 3D-массив
В Python функция add() добавит элементы в конец массива, и эта функция объединит два массива numpy и всегда возвращает новый массив.
Пример:
import numpy as np new_array1 = np.array([[23, 31], [78, 89],[356,921]]) new_array2 = np.array([[834, 567], [179, 119],[823,108]]) result = np.append(new_array1, new_array2,axis=1) print(result)
В приведенном выше коде мы применяем функцию add(), в которой мы назначили два заданных массива «new_array1» и «new_array2». Как только вы распечатаете «результат», на выходе отобразится новый обновленный трехмерный массив.
Вот скриншот следующего кода:
Как объединить
В Python функция конкатенации используется для объединения двух разных массивов numpy вместе с осью.
В этом примере мы создали два массива numpy «arr1» и «arr2», используя функцию np.array(). Теперь используйте функцию конкатенации, в которой у нас есть массивы передач, и расположите их по оси.
Исходный код:
import numpy as np arr1 = np.array([[67, 23, 89], [15, 35, 76],[114,256,345]]) arr2 = np.array([[48, 189, 234],[782, 567, 190],[543,134,567]]) print(np.concatenate((arr1, arr2), axis = -1))
Вот результат выполнения следующего кода: