首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缩放NumPy数组中的一个特定特性,该数组具有多个使用sklearn中的minmaxScalar的特性

缩放NumPy数组中的一个特定特性,该数组具有多个使用sklearn中的minmaxScalar的特性
EN

Stack Overflow用户
提问于 2018-02-11 07:35:35
回答 1查看 501关注 0票数 1

我有一个有4个特性的numpy数组。我想使用sklearn的minMaxScalar来扩展第二个特性。假设特征是A,B,C,D,numpy数组是

代码语言:javascript
运行
复制
[     [1,2,3,4],       [5,6,7,8],    [9,10,11,12],    [13,14,15,16]]

A-1,5,9,13:

B-2,6,10,14:

C-3,7,11,15:

D-4、8、12、16

我要缩放第二个特征B,即

缩放后->B-0.0,0.333,0.667,1.0

我这样做的方法是提取B特性,用一个特性创建一个新的numpy数组,并缩放新的数组。通过使用已经定义的数组,我如何在不创建任何新数组的情况下做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-11 08:06:25

你可以使用切片和广播。但是你需要注意切片的形状。见下面的代码

代码语言:javascript
运行
复制
In [1]: import numpy as np

In [2]: from sklearn.preprocessing import MinMaxScaler

In [3]: sc = MinMaxScaler()

In [4]: X = [ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]

In [5]: X = np.array(X,dtype=float)

In [6]: X
Out[6]: 
array([[ 1.,  2.,  3.,  4.],
       [ 5.,  6.,  7.,  8.],
       [ 9., 10., 11., 12.],
       [13., 14., 15., 16.]])

In [7]: X[:,1:2] = sc.fit_transform(X[:,1:2])

In [8]: X
Out[8]: 
array([[ 1.        ,  0.        ,  3.        ,  4.        ],
       [ 5.        ,  0.33333333,  7.        ,  8.        ],
       [ 9.        ,  0.66666667, 11.        , 12.        ],
       [13.        ,  1.        , 15.        , 16.        ]])

切分所有行(:)和索引1的列,但不包括2 (1:2),我们选择列并保持其形状,这是必需的,因为minmaxscaler需要一个2D数组输入。广播分配也需要形状一致性。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48729365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档