微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何fixTypeError:只能将整数标量数组转换为标量索引

如何解决如何fixTypeError:只能将整数标量数组转换为标量索引

我正在运行以下代码,而我却收到一个错误,例如仅将整数标量值转换为标量索引。.


    from sklearn.model_selection import train_test_split 
    from sklearn.preprocessing import MinMaxScaler

      X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.1,random_state=0)
      min_max_scaler = MinMaxScaler()
      X_train = min_max_scaler.fit_transform(X_train)
      rbm_train=rbm_model_1.fit_transform(X_train )

X_train=sc.fit_transform(X_train) ----> this line causing error 
X =[[0.00000000e+00 1.76100000e+03 3.02434414e-02 ... 1.00505479e+01
  6.90634415e+00 1.13641060e+01]
 [1.00000000e+00 5.54300000e+03 3.32540176e-01 ... 9.66597699e+01
  7.81453418e+01 2.94180046e+02]
 [2.00000000e+00 3.44800000e+03 1.35616750e-01 ... 2.77757100e+01
  2.95552513e+01 6.49203725e+01]
 ...
 [5.85600000e+03 3.37100000e+03 1.99433359e-01 ... 1.82494245e+01
  2.96294395e+01 4.89311229e+01]
 [5.85700000e+03 4.59700000e+03 3.33133906e-01 ... 4.38591971e+01
  6.63558086e+01 5.51086311e+01]
 [5.85800000e+03 4.82800000e+03 3.91628974e-01 ... 6.50556871e+01
  1.02210562e+02 5.93112050e+01]]

y= [0. 0. 0. ... 1. 1. 1.]

X_train = [[-0.78210062  0.14111439 -0.3656736  ... -0.06997126 
    -0.14909763
  -0.54753418]
 [-0.51177349 -0.77928848 -0.47345634 ... -0.24668018 -0.17406007
  -0.67165109]
 [ 0.07797737 -0.54963283 -0.45941915 ... -0.26573143 -0.21174211
  -0.61647054]
 ...
 [-0.75134129 -1.29734889 -0.59546654 ... -0.328803   -0.25774714
  -0.69402226]
 [-0.18702603 -0.3460879  -0.58283771 ... -0.24237006 -0.26603587
  -0.59759254]
 [-0.11308535 -0.82498224 -0.50012261 ... -0.3001251  -0.22795859
  -0.64925682]]

这些是我以前为X,Y,X_train获得的输出...我有值,但是在转换其选择时,因为只能将整数标量数组转换为标量索引

解决方法

将其发布为答案,因为评论太长了

我无法重现您的问题,请提供一个可运行的示例。让我们整理一下您提供的代码,并删除与错误无关的所有内容:

  • 删除发生错误的行后的所有内容-不相关
  • 删除该功能,不需要一个快速脚本
  • 删除args
  • 您似乎对X(大写)和x(小写)感到困惑。您没有说注释中发布的数据是存储在X还是x中,所以按照sklearn约定,我将其存储在X中。
  • 您提供的示例数据已经是正确的形状(N行,M列),所以我将其放入了Scaler中,瞧!
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler



X = [
    [-0.78210062,0.14111439,-0.3656736,-0.06997126,-0.14909763,-0.54753418],[-0.51177349,-0.77928848,-0.47345634,-0.24668018,-0.17406007,-0.67165109],[0.07797737,-0.54963283,-0.45941915,-0.26573143,-0.21174211,-0.61647054],[-0.75134129,-1.29734889,-0.59546654,-0.328803,-0.25774714,-0.69402226],[-0.18702603,-0.3460879,-0.58283771,-0.24237006,-0.26603587,-0.59759254],[-0.11308535,-0.82498224,-0.50012261,-0.3001251,-0.22795859,-0.64925682],]

Y = list(range(len(X)))

X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.10,random_state=0)

sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.fit_transform(X_test)

运行正常。鉴于原始问题缺少多少信息,我无法确定原始问题是什么。我的理论是,由于此行,您传递给的数据的形状不是(M,N)

n_components_RBM,n_components_nn_=X,Y

这使我觉得您原来的X(大写)是整数而不是矩阵,而您实际上想使用x(小写)。尝试找出本例中的数据与实际数据之间的差异。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。