解决Python报错Valueerror: Expected 2d Array Got 1d Array Instead

 更新时间:2024年01月17日 16:31:19   作者:迹忆客  
如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时,下面我就来看看当发生错误 ValueError: Expected 2D array, got 1D array instead时该如何解决吧

如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时。 Python 在使用 numpy 库时有时会遇到数组错误。

当我们在 numpy 中传递一维数组而不是二维数组时,会发生错误 ValueError: Expected 2D array, got 1D array instead 。

Python 中的 Numpy 数组

Numpy 是一个处理数组和数学运算的开源库。 在 Python 中,列表向我们提供了数组的用途,但 numpy 的创建者声称他们证明数组比列表快 50 倍。

这是使用 numpy 数组的核心目的之一。

在 Python 中创建一个 Numpy 数组

numpy 数组的语法很简单。 我们必须将 numpy 库导入您的程序并相应地使用。

import numpy as np
# creating a numpy array
array1 = np.array([2,4,6])
print(array1)

输出:

[2 4 6]

Python 中错误 ValueError: Expected 2D array, got 1D array instead 的原因

当您在函数中传递一维数组时会发生此错误。 但是,该函数需要一个二维数组,因此您传递的不是一个二维数组,而是一个单一维度的数组。

它主要发生在 predict() 方法中使用机器学习算法。

现在让我们来看看这个场景。

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
print(classifier.predict([0.7,1.10]))

输出:

修复 Python 中错误 ValueError: Expected 2D array, got 1D array instead

对数据使用双方括号

下面我们已经解决了前面例子中的错误。 修复错误的最简单方法是将维数组转换为二维数组。

我们可以将 [0.7,1.10] 括在另一个方括号中,以便在将其传递给 predict() 方法时将其转换为二维数组。

示例代码:

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
print(classifier.predict([[0.7,1.10]]))

输出:

[1]

使用 reshape() 重塑数组

将一维数组转换为二维数组的另一种方法是使用 reshape() 方法重塑数组。 您可以使用 reshape() 方法在 Python 中重塑数组。

每个维度中元素的数量决定了数组的形状。 您可以使用重塑来添加或删除数组维度。

在下面的代码中,您可以看到使用 reshape() 方法前后 numpy 数组的维度。

示例代码:

import numpy as np
from sklearn import svm
X = np.array([[2,1],
[4,5],
[2.6,3.5],
[6,6],
[0.8,1],
[7,10]])
y = [1,0,1,0,1,0]
classifier = svm.SVC(kernel="linear", C = 1.0)
classifier.fit(X,y)
test=np.array([0.7,1.10])
print("Dimension before:", test.ndim)
test=test.reshape(1, -1)
print("Dimension now:", test.ndim)
print("Classifier Result:", classifier.predict(test))

输出:

Dimension before: 1
Dimension now: 2
Classifier Result: [1]

到此这篇关于解决Python报错Valueerror: Expected 2d Array Got 1d Array Instead的文章就介绍到这了,更多相关Python报错Valueerror内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python如何给字典的键对应的值为字典项的字典赋值

    python如何给字典的键对应的值为字典项的字典赋值

    这篇文章主要介绍了python如何给字典的键对应的值为字典项的字典赋值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 解决python大批量读写.doc文件的问题

    解决python大批量读写.doc文件的问题

    今天小编就为大家分享一篇解决python大批量读写.doc文件的问题。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 使用pyqt5 实现ComboBox的鼠标点击触发事件

    使用pyqt5 实现ComboBox的鼠标点击触发事件

    这篇文章主要介绍了使用pyqt5 实现ComboBox的鼠标点击触发事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Django中ModelForm组件的简单配置与使用教程

    Django中ModelForm组件的简单配置与使用教程

    modelform是django中基于已有的model,快速生成的具有form功能的一个模块,下面这篇文章主要给大家介绍了关于Django中ModelForm组件的简单配置与使用教程,需要的朋友可以参考下
    2022-10-10
  • 简单快捷:NumPy入门教程的环境设置

    简单快捷:NumPy入门教程的环境设置

    NumPy是Python语言的一个扩展程序库,支持高阶大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,本教程是为那些想了解NumPy的基础知识和各种功能的人准备的,它对算法开发人员特别有用,需要的朋友可以参考下
    2023-10-10
  • Pandas高级教程之Pandas中的GroupBy操作

    Pandas高级教程之Pandas中的GroupBy操作

    通常来说groupby操作可以分为三部分:分割数据,应用变换和和合并数据,本文将会详细讲解Pandas中的groupby操作,感兴趣的朋友一起看看吧
    2021-07-07
  • Python利用Matplotlib绘图无法显示中文字体的两种解决方案

    Python利用Matplotlib绘图无法显示中文字体的两种解决方案

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,这篇文章主要给大家介绍了关于Python利用Matplotlib绘图无法显示中文字体的两种解决方案,需要的朋友可以参考下
    2024-03-03
  • python topN 取最大的N个数或最小的N个数方法

    python topN 取最大的N个数或最小的N个数方法

    今天小编就为大家分享一篇python topN 取最大的N个数或最小的N个数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 极简Python库CherryPy构建高性能Web应用实例探索

    极简Python库CherryPy构建高性能Web应用实例探索

    今天为大家介绍的是 CherryPy,它是一个极简、稳定且功能强大的Web框架,可以帮助开发者快速构建高性能的 Web 应用程序,使用 CherryPy,你可以轻松地创建RESTful API、静态网站、异步任务和 WebSocket 等应用
    2024-01-01
  • python对csv文件追加写入列的方法

    python对csv文件追加写入列的方法

    这篇文章主要介绍了python对csv文件追加写入列,需要的朋友可以参考下
    2019-08-08

最新评论