Чтобы нормализовать массив в Python NumPy, от 0 до 1, используйте либо пользовательскую функцию, либо функцию np.linalg.norm(). Пользовательская функция линейно масштабирует данные на основе минимального и максимального значений, а np.linalg.norm() нормализует данные на основе среднего значения и векторной нормы массива.

Содержание

Метод 1: используя пользовательскую функцию

Пользовательскую функцию нормализации NumPy можно написать с использованием основных арифметических операций. Формула нормализации массива X:

 нормализованный_X =(Xi−min(X))/(max(X)−min(X))
 Si Элемент массива, который мы хотим нормализовать.
min(Х) Минимальное значение в массиве Python.
max(Х) Максимальное значение в массиве Python.

Пример. Давайте возьмем одномерный массив и попытаемся нормализовать его от 0 до 1, используя специальную функцию Python.

import numpy as np

def normalize_custom(X):
    X_min = X.min()
    X_max = X.max()
    return(X - X_min) /(X_max - X_min)

data = np.array([10, 20, 30])
normalized_data = normalize_custom(data)
print("Normalized Data:", normalized_data)

Выходные данные: эта функция вычисляет минимальное и максимальное значения массива, а затем применяет формулу нормализации к каждому элементу.

Normalized Data: [0.  0.5 1. ]

используя пользовательскую функцию

Метод 2: с помощью функции np.linalg.norm()

В Python нормализация означает, что нормальное значение массива имеет векторную величину, и нам нужно преобразовать массив в желаемый диапазон. Для выполнения этой задачи мы собираемся использовать метод numpy.linalg.norm().

Синтаксис:

numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)

Пример. Давайте возьмем массив в Python и попробуем нормализовать его от 0 до 1 с помощью Python.

import numpy as np

array = np.array([12, 22, 28])

norm_value = np.linalg.norm(array)
normalized_array_with_norm = array / norm_value
print(normalized_array_with_norm)

Выходные данные: это вычислит евклидову длину вектора с помощью Python.

[0.31934778 0.58547092 0.74514481]

с помощью функции np.linalg.norm()

Как нормализовать двумерный массив

Чтобы нормализовать двумерный массив между 0 и 1 в Python с помощью NumPy, мы можем использовать код, приведенный в примере:

import numpy as np

array_2d = np.array([[1, 2], [3, 4]])

min_val = np.min(array_2d)
max_val = np.max(array_2d)
normalized_array_2d =(array_2d - min_val) /(max_val - min_val)
print('After Normalizing:', normalized_array_2d)

Выход:

After Normalizing: [[0.         0.33333333]
 [0.66666667 1.        ]]

Как нормализовать двумерный массив 

Вектор нормализуется в диапазоне

Чтобы нормализовать вектор в определенном диапазоне в Python с помощью NumPy, вы можете выполнить двухэтапный процесс:

  1. Нормализуйте вектор к диапазону от 0 до 1.
  2. Масштабируйте и сдвиньте этот нормализованный вектор в желаемый диапазон.

Например, если вы хотите нормализовать вектор до диапазона [a, b], формула будет такой:

 нормализованный_вектор =(макс(вектор)-мин(вектор))/(вектор-мин(вектор))
 Scaled_vector=normalized_vector×(b-a)+a
import numpy as np
def normalize_vector(vector, range_min, range_max):
    normalized_vector =(vector - np.min(vector)) /(np.max(vector) - np.min(vector))
    scaled_vector = normalized_vector *(range_max - range_min) + range_min
    return scaled_vector

vector = np.array([10, 20, 30])
normalized_vector = normalize_vector(vector, 0, 5)
print('After normalizing:', normalized_vector)

Выход:

After normalizing: [0.  2.5 5. ]

Вектор нормализуется в диапазоне

Нормализация угла

Чтобы узнать угол плавающих и комплексных значений в Python, мы собираемся использовать функцию numpy.angle(), и этот метод также преобразует значения массива NumPy для нормализации.

import numpy as np

new_arr = np.array([[6.0,19.0j],
                [15+1j,12.0]])
new_result= np.angle(new_arr)
print(new_result)

Выход:

[[0.         1.57079633]
 [0.06656816 0.        ]]

Как нормализовать угол в Python

Заключение

Нормализация NumPy 0 и 1 в массиве Python — это простой процесс, независимо от того, выбираем ли мы пользовательскую функцию для простоты или функцию np.linalg.norm() для более статистического подхода. Оба метода предоставляют эффективные способы предварительной обработки данных, обеспечивая совместимость и повышенную производительность в различных приложениях машинного обучения и анализа данных.

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