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-массив Python NumPy

Содержание

Как создать

Используя функцию 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:

Как создать 3D-массив в 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», на выходе отобразится новый массив.

Вот скриншот следующего кода:

Массив 3d в 2d

Ось трехмерного массива

Сначала мы создадим два массива 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-массива

Список 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)

Вот реализация следующего кода:

Список 3d в массив 

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)

Вот выполнение следующего данного кода:

Трехмерный массив в Python

Сумма трехмерного массива

Используя метод 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 определяет 3d-массив

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)

Вы можете обратиться к приведенному ниже снимку экрана:

numpy вращает трехмерный массив

Функция 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. Как только вы напечатаете «результат», на выходе отобразится новый трехмерный массив.

Вот скриншот следующего кода:

Функция where

Пустой трехмерный массив

В этом примере мы собираемся использовать метод 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.

Вот выполнение следующего данного кода:

Как изменить форму 3D-массива в 2D 

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)

numpy инициализирует трехмерный массив

Как добавить 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». Как только вы распечатаете «результат», на выходе отобразится новый обновленный трехмерный массив.

Вот скриншот следующего кода:

Как добавить 3D-массив

Как объединить

В 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))

Вот результат выполнения следующего кода:

Как объединить трехмерный массив

Добавить комментарий