Чтобы нормализовать массив в Python NumPy, от 0 до 1, используйте либо пользовательскую функцию, либо функцию np.linalg.norm(). Пользовательская функция линейно масштабирует данные на основе минимального и максимального значений, а np.linalg.norm() нормализует данные на основе среднего значения и векторной нормы массива.
- Метод 1: используя пользовательскую функцию
- Метод 2: с помощью функции 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]
Как нормализовать двумерный массив
Чтобы нормализовать двумерный массив между 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, вы можете выполнить двухэтапный процесс:
- Нормализуйте вектор к диапазону от 0 до 1.
- Масштабируйте и сдвиньте этот нормализованный вектор в желаемый диапазон.
Например, если вы хотите нормализовать вектор до диапазона [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. ]]
Заключение
Нормализация NumPy 0 и 1 в массиве Python — это простой процесс, независимо от того, выбираем ли мы пользовательскую функцию для простоты или функцию np.linalg.norm() для более статистического подхода. Оба метода предоставляют эффективные способы предварительной обработки данных, обеспечивая совместимость и повышенную производительность в различных приложениях машинного обучения и анализа данных.