NumPy Zeros: Создание массивов и матриц с нулями в NumPy

В этом руководстве вы научитесь создавать нулевую матрицу с использованием функции zeros в NumPy. Нулевые массивы и матрицы имеют особое значение в машинном обучении. Умение эффективно создавать их позволит вам стать более компетентным в линейной алгебре и машинном обучении.

К концу этого урока вы узнаете:

  • Зачем создавать нулевые матрицы

  • Как использовать функцию NumPy .zeros()

  • Как создавать одномерные, двухмерные и трехмерные нулевые массивы и матрицы

  • Как изменить типы данных нулей в матрице

Оглавление

Что такое нулевая матрица?

Матрица нулей — это особый тип матрицы, где каждое значение равно нулю. Это позволяет создать матрицу с особыми свойствами и характеристиками при взаимодействии с другими матрицами. Обычно нулевая матрица определяется как 0m,n, где m и n обозначают размеры этой матрицы.

Это означает, что нулевая матрица размером (4,4) будет выглядеть следующим образом:

# Нулевая матрица размером 4x4
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

Давайте рассмотрим некоторые характеристики этой типа матрицы. Представим, что у нас есть нулевая матрица 0 и другая матрица A. Тогда у нас будут следующие характеристики:

  • A + 0 = 0 + A = A

  • A – 0 = A

  • A – A = 0

  • 0A = 0

Зная это, мы можем определить некоторые более важные характеристики в машинном обучении. В следующих разделах вы узнаете, как генерировать нулевые матрицы в Python с использованием NumPy.

Понимание функции нулей NumPy

Для создания нулевой матрицы с использованием Python и NumPy мы можем воспользоваться функцией .zeros() из NumPy. Давайте рассмотрим функцию np.zeros() и ее параметры:

# Функция NumPy zeros()
np.zeros(
    shape,          # Int или кортеж int
    dtype=float,    # Тип данных для массива
    order='C',      # Оптимизация памяти
    like=None       # Объект для справки при создании
)

В этом уроке мы сосредоточимся на первых двух параметрах. Параметр shape= позволяет вам определить размер массива нулей или матрицы, который будет создан. Параметр dtype= позволяет вам установить тип данных создаваемой матрицы нулей.

Создайте одномерный массив нулей в Numpy

Давайте рассмотрим один из самых простых способов создания матрицы нулей в Python: одномерный массив нулей. Это можно сделать, передав одно целое число в аргумент формы функции zeros.

Давайте посмотрим, как создать нулевой массив размером 5 с помощью Python:

# Создание массива нулей
import numpy as np

array_1d = np.zeros(5)
print(array_1d)

# Возвращает: [0. 0. 0. 0. 0.]

По умолчанию NumPy создает одномерный массив с типом данных в виде чисел с плавающей точкой.

Создайте двумерную матрицу нулей в Numpy

NumPy позволяет с легкостью создать двумерную матрицу, заполненную нулями. Для этого достаточно передать кортеж целых чисел, указывающих размеры этой матрицы. По умолчанию NumPy будет использовать тип данных с плавающей точкой.

Давайте посмотрим, как создать матрицу нулей размером 3×2 с помощью NumPy:

# Создание нулевой матрицы в NumPy
import numpy as np

matrix_2d = np.zeros((3, 2))
print(matrix_2d)

# Возвращает:
# [[0. 0.]
#  [0. 0.]
#  [0. 0.]]

Создайте трехмерную матрицу нулей в Numpy

Чтобы создать трехмерную матрицу нулей в NumPy, мы можем просто передать кортеж длиной три. Давайте посмотрим, как мы можем создать кортеж размера (3,3,2):

# Создание трехмерной нулевой матрицы
import numpy as np

matrix_3d = np.zeros((3, 3, 2))
print(matrix_3d)

# Возвращает:
# [[[0. 0.]
#   [0. 0.]
#   [0. 0.]]

#  [[0. 0.]
#   [0. 0.]
#   [0. 0.]]

#  [[0. 0.]
#   [0. 0.]
#   [0. 0.]]]

Как изменить тип данных матрицы нулей в Numpy

По умолчанию NumPy будет использовать числа с плавающей точкой для создания матрицы нулей с помощью функции np.zeros(). Мы можем использовать параметр dtype=, чтобы изменить тип данных значений в матрице нулей.

Давайте посмотрим, как мы можем создать матрицу нулей с целыми числами вместо чисел с плавающей точкой:

# Создание нулевой матрицы с целыми числами
import numpy as np

matrix_2d = np.zeros((3, 2), dtype=int)
print(matrix_2d)

# Возвращает:
# [[0 0]
#  [0 0]
#  [0 0]]

Вы можете зайти еще дальше и передать кортеж с типами данных. Это позволяет вам легко создавать кортежи нулей различных типов данных в NumPy:

# Изменение типов данных в нулевой матрице
import numpy as np

matrix_2d = np.zeros((3, 2), dtype=[('a', 'float'), ('b', 'int')])
print(matrix_2d)

# Возвращает:
# [[(0., 0) (0., 0)]
#  [(0., 0) (0., 0)]
#  [(0., 0) (0., 0)]]

В приведенном выше примере мы создаем нулевую матрицу, содержащую кортежи нулей. В кортеже первый тип данных — число с плавающей точкой, второй — целое число.

Понимание параметра порядка в нулях Numpy

NumPy также позволяет настраивать стиль хранения данных в памяти в стиле по строкам или столбцам. Это предоставляет дополнительную гибкость для изменения обработки памяти при создании нулевых матриц.

При использовании параметра order= вы можете передать либо 'C', либо 'F', чтобы изменить способ хранения этих значений. Используя 'C', данные будут храниться в формате по строкам. В то время как при передаче 'F', данные хранятся в столбцовом порядке (в стиле Fortran).

NumPy по умолчанию использует формат строкового порядка. Мы можем изменить это, установив параметр

# Изменение матрицы на порядок столбцов (column-major)
import numpy as np

matrix_2d = np.zeros((3, 2), order='F')
print(matrix_2d)

# Возвращает:
# [[0. 0.]
#  [0. 0.]
#  [0. 0.]]

Заключение

В этом уроке вы научились использовать NumPy для создания нулевых матриц. Сначала вы узнали, каковы характеристики нулевой матрицы. Затем вы научились создавать массивы нулей, а также двумерные и трехмерные массивы нулей в NumPy. Наконец, вы узнали, как изменить порядок элементов в матрице.

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

  • NumPy для науки о данных в Python

  • Numpy нормальное (гауссово) распределение (Numpy Random Normal)

  • Скалярное произведение Numpy: вычисление скалярного произведения Python

Last updated