解决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实现复刻人生重开模拟器

    人生重开模拟器是由VickScarlet上传至GitHub的一款简单的文字网页游戏。本文将用Python复刻一下这个游戏,感兴趣的小伙伴可以尝试一下
    2022-10-10
  • Python selenium实现断言3种方法解析

    Python selenium实现断言3种方法解析

    这篇文章主要介绍了Python selenium实现断言3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • django开发教程之利用缓存文件进行页面缓存的方法

    django开发教程之利用缓存文件进行页面缓存的方法

    缓存相信对各位程序员们来说都不陌生,下面这篇文章主要给大家介绍了关于django开发教程之利用缓存文件进行页面缓存的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • python防止随意修改类属性的实现方法

    python防止随意修改类属性的实现方法

    这篇文章主要介绍了python防止随意修改类属性的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 对Python生成汉字字库文字,以及转换为文字图片的实例详解

    对Python生成汉字字库文字,以及转换为文字图片的实例详解

    今天小编就为大家分享一篇对Python生成汉字字库文字,以及转换为文字图片的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python中的Pytorch建模流程汇总

    python中的Pytorch建模流程汇总

    这篇文章主要介绍了python中的Pytorch建模流程汇总,主要帮大家帮助大家梳理神经网络训练的架构,具有一的的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • python中print格式化输出的问题

    python中print格式化输出的问题

    所谓格式化输出,就是创建一个可以嵌入变量内容的字符串。这篇文章主要介绍了python中print格式化输出,需要的朋友可以参考下
    2021-04-04
  • Python全栈之文件操作

    Python全栈之文件操作

    这篇文章主要为大家介绍了Python文件操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
    2021-11-11
  • 详解Python函数中的几种参数

    详解Python函数中的几种参数

    这篇文章主要为大家介绍了Python参数的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python中更优雅的日志记录方案详解

    Python中更优雅的日志记录方案详解

    在Python中,一般情况下我们可能直接用自带的logging模块来记录日志,但logging用起来其实并不是那么好用,其实主要还是配置较为繁琐。本文为大家介绍了Python中更优雅的日志记录方案,需要的可以参考一下
    2022-06-06

最新评论