Python 如何修复类型错误:只有整数标量数组才能转换为标量索引

Python 如何修复类型错误:只有整数标量数组才能转换为标量索引,python,multidimensional-array,scikit-learn,typeerror,scalar,Python,Multidimensional Array,Scikit Learn,Typeerror,Scalar,我正在运行下面的代码,但我收到了一个错误,例如仅将整型标量值转换为标量索引 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)

我正在运行下面的代码,但我收到了一个错误,例如仅将整型标量值转换为标量索引


    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,Y,X_系列的输出。。。我有这些值,但在转换其相关值时,只有整数标量数组可以转换为标量索引

将此作为答案发布,因为注释太长:

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

  • 删除发生错误的行之后的所有内容-这与错误无关
  • 删除该函数,不需要快速脚本
  • 删除
    args
  • 您似乎混淆了
    X
    (大写)和
    X
    (小写)。您没有说您在评论中发布的数据是存储在X还是X中,因此根据sklearn约定,我将其存储在X中
  • 您提供的示例数据已经是正确的形状(N行,M列),因此我将其放入Scaler中,瞧:
这很好用。鉴于原始问题中缺少多少信息,我无法确定原始问题是什么。我的理论是,您传递到的数据不是形状
(M,N)
,因为这条线:

n_components_RBM,n_components_nn_=X,Y

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

您的数据形状可能是错误的。你能发布一个小的可复制的例子吗?在你编辑的例子中,
args
的值是多少?上面还有两行没有做任何事情,改变它们,它运行良好#x,y,正则化#nn,学习率#RBM,学习率#nn,n#iter#RBM,批大小#RBM,批大小#nn,n#iter#nn组件#RBM,n#组件#nn#RBM,n#nn n#RBM#nn
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]]
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)
n_components_RBM,n_components_nn_=X,Y