基于行的一部分的最小-最大归一化
Min-max normalization based on a part of row
我有一个 numpy 数组,我想根据行的常数 window 大小的最大值和最小值对数组进行归一化,然后使用 x_normal = (x-min)/(max-min)
.
例如,在下面的数组中,我选择每行中每个 4 列的最大值和最小值。对于第一行,4 列 (3, 5, 3, 3) 最小值和最大值是 3、5 然后是 (3-3/5-3,5-3/5-3, 3-3/5-3, 3-3/5-3)
然后是 (9,2,2,5)
最小值最大值为 2、9,然后 (9-2/9-2, 2-2/9-2,2-2/9-2, 5-2/9-2)
依此类推。
import numpy as np
x = np.array([
[3, 5, 3, 3, 9, 2, 2, 5, 1, 0, 7, 2],
[4, 4, 8, 4, 3, 1, 4, 8, 7, 6, 1, 4]
])
output:
x = np.array([
[0, 1, 0, 0, 1, 0, 0, 3/7, 1/6, 0, 1, 2/6],
[0, 0, 1, 0, 2/7, 0, 3/7, 1, 1, 5/6, 0, 3/6]
])
import numpy as np
import numpy.typing as npt
def normalize(array: npt.NDArray) -> npt.NDArray:
minimum = np.expand_dims(np.min(array, axis=1), axis=1)
maximum = np.expand_dims(np.max(array, axis=1), axis=1)
return (array - minimum) / (maximum - minimum)
x = np.array([
[3, 5, 3, 3, 9, 2, 2, 5, 1, 0, 7, 2],
[4, 4, 8, 4, 3, 1, 4, 8, 7, 6, 1, 4]
]).astype(float)
windows_size = 4
for i in range(0, x.shape[1], windows_size):
x[:, i: i + windows_size] = normalize(x[:, i: i + windows_size])
方法:
- Select滑动windows尺寸
- 取指定大小windows的子数组
- 每列计算 min/max
- 每列执行减法和除法
我有一个 numpy 数组,我想根据行的常数 window 大小的最大值和最小值对数组进行归一化,然后使用 x_normal = (x-min)/(max-min)
.
例如,在下面的数组中,我选择每行中每个 4 列的最大值和最小值。对于第一行,4 列 (3, 5, 3, 3) 最小值和最大值是 3、5 然后是 (3-3/5-3,5-3/5-3, 3-3/5-3, 3-3/5-3)
然后是 (9,2,2,5)
最小值最大值为 2、9,然后 (9-2/9-2, 2-2/9-2,2-2/9-2, 5-2/9-2)
依此类推。
import numpy as np
x = np.array([
[3, 5, 3, 3, 9, 2, 2, 5, 1, 0, 7, 2],
[4, 4, 8, 4, 3, 1, 4, 8, 7, 6, 1, 4]
])
output:
x = np.array([
[0, 1, 0, 0, 1, 0, 0, 3/7, 1/6, 0, 1, 2/6],
[0, 0, 1, 0, 2/7, 0, 3/7, 1, 1, 5/6, 0, 3/6]
])
import numpy as np
import numpy.typing as npt
def normalize(array: npt.NDArray) -> npt.NDArray:
minimum = np.expand_dims(np.min(array, axis=1), axis=1)
maximum = np.expand_dims(np.max(array, axis=1), axis=1)
return (array - minimum) / (maximum - minimum)
x = np.array([
[3, 5, 3, 3, 9, 2, 2, 5, 1, 0, 7, 2],
[4, 4, 8, 4, 3, 1, 4, 8, 7, 6, 1, 4]
]).astype(float)
windows_size = 4
for i in range(0, x.shape[1], windows_size):
x[:, i: i + windows_size] = normalize(x[:, i: i + windows_size])
方法:
- Select滑动windows尺寸
- 取指定大小windows的子数组
- 每列计算 min/max
- 每列执行减法和除法