我有一个 numpy 数组,我想使用以下过程将每一行的值重新调整为 0 到 1 之间的值:
如果沿给定行的最大值为X_max,沿该行的最小值为X_min,则该行中X_rescaled给定条目 ( X)的重新缩放值 ( )应变为:
X_rescaled = (X - X_min)/(X_max - X_min)
Run Code Online (Sandbox Code Playgroud)
例如,让我们考虑以下数组 ( arr):
arr = np.array([[1.0,2.0,3.0],[0.1, 5.1, 100.1],[0.01, 20.1, 1000.1]])
print arr
array([[ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00],
[ 1.00000000e-01, 5.10000000e+00, 1.00100000e+02],
[ 1.00000000e-02, 2.01000000e+01, 1.00010000e+03]])
Run Code Online (Sandbox Code Playgroud)
目前,我正在尝试通过以下方式使用MinMaxscalerfrom scikit-learn:
from sklearn.preprocessing import MinMaxScaler
result = MinMaxScaler(arr)
Run Code Online (Sandbox Code Playgroud)
但是,我不断得到我的初始数组,即result结果arr与上述方法中的相同。我究竟做错了什么?
如何arr以我需要的方式缩放数组(沿每个轴的最小-最大缩放?)提前致谢。
我想对包含数字(比如l1)的python列表进行排序,并使用此列表的索引(排序顺序)重新排列两个不同列表(l2和l3)的元素.我想用标准的python库(不是pandas)实现这一点.我正在使用python 2.7.
例如,让我们说:
l1 = [2,4,5,1]
l2 = ['aa', 'bb', 'cc', 'dd']
l3= ['a_a', 'b_b', 'c_c', 'd_d']
Run Code Online (Sandbox Code Playgroud)
在这里,我想按降序对l1进行排序l1_sorted = [5,4,2,1].
其他列表(l2和l3)将按照l1(l1_sorted)中的排序索引重新排列.在上面的例子中,我们应该:
l2_sorted = ['cc', 'bb', 'aa', 'dd']
l3_sorted = ['c_c', 'b_b', 'a_a', 'd_d']
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用Python(l1_sorted = sorted(l1, reverse=True))的排序函数.但那只能给我l1_sorted.
如何实现我想要的全部功能(即l2_sorted和l3_sorted)?