ValueError: y should be a 1d array, got an array of shape (43136, 10) instead.怎么更正
时间: 2024-04-30 08:25:13 浏览: 150
python3.7解决最小二乘遇到ValueError:Expected 2D array, got 1D array instead: array=[5.].关于reshape和predict
这个错误通常是由于目标变量 y 的形状不正确导致的。y 应该是一个 1 维的数组,而不是一个形状为 (43136, 10) 的二维数组。
要解决这个问题,你可以尝试将 y 转换为一个 1 维数组。你可以使用 numpy 库中的 flatten() 函数来将 y 压缩成一维数组,示例如下:
```python
import numpy as np
y = np.reshape(y, (43136, 10))
y = np.argmax(y, axis=1) # 将 y 转换为 one-hot 编码的标签值
y = y.flatten() # 将 y 压缩为一维数组
```
这段代码将 y 转换为 one-hot 编码的标签值,然后将其压缩为一维数组。如果你已经有了一个 one-hot 编码的标签值,那么你只需要将其压缩为一维数组即可,示例如下:
```python
y = np.argmax(y, axis=1) # 将 y 转换为 one-hot 编码的标签值
y = y.flatten() # 将 y 压缩为一维数组
```
如果你使用的是 scikit-learn 库中的函数,你也可以直接使用 ravel() 函数将 y 压缩为一维数组,示例如下:
```python
from sklearn.utils import column_or_1d
y = column_or_1d(y, warn=True)
```
这段代码将 y 压缩为一维数组。注意,这里使用了 column_or_1d() 函数来确保 y 是一个一维数组,否则它将引发一个警告。
阅读全文