解决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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 100 个 Python 小例子(练习题一)

    100 个 Python 小例子(练习题一)

    这篇文章主要介绍 Python 小例子,有数字组合、个税计算、完全平方数、三数排序、斐波那契数列、copy、九九乘法表、暂停一秒输出等多个实例,需要的朋友可以参考一下
    2021-10-10
  • Python pyecharts绘制折线图详解

    Python pyecharts绘制折线图详解

    pyecharts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。本文将利用其绘制折线图,需要的可以参考一下
    2022-04-04
  • Python之列表实现栈的工作功能

    Python之列表实现栈的工作功能

    今天小编就为大家分享一篇关于Python之列表实现栈的工作功能,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python实现指定字符串补全空格的方法

    python实现指定字符串补全空格的方法

    这篇文章主要介绍了python实现指定字符串补全空格的方法,涉及Python中rjust,ljust和center方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python实现爬取亚马逊数据并打印出Excel文件操作示例

    Python实现爬取亚马逊数据并打印出Excel文件操作示例

    这篇文章主要介绍了Python实现爬取亚马逊数据并打印出Excel文件操作,结合实例形式分析了Python针对亚马逊图书数据的爬取操作,以及数据打印输出Excel相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • Python queue队列原理与应用案例分析

    Python queue队列原理与应用案例分析

    这篇文章主要介绍了Python queue队列原理与应用,结合具体案例形式分析了Python queue队列的原理、功能、实现方法与使用技巧,需要的朋友可以参考下
    2019-09-09
  • Python JSON编解码方式原理详解

    Python JSON编解码方式原理详解

    这篇文章主要介绍了Python JSON编解码方式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python中操作MySQL数据库时如何处理数据类型转换问题

    Python中操作MySQL数据库时如何处理数据类型转换问题

    日常工作中,我们难免会遇到要直连数据库来进行数据的读取与处理,然而会有几种比较有特点的数据需要进行转换,这篇文章主要介绍了Python中操作MySQL数据库时如何处理数据类型转换问题的相关资料,需要的朋友可以参考下
    2026-01-01
  • Python使用asyncio包处理并发详解

    Python使用asyncio包处理并发详解

    这篇文章主要为大家详细介绍了Python使用asyncio包处理并发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • python使用matplotlib画出的图怎样放到word中

    python使用matplotlib画出的图怎样放到word中

    这篇文章主要介绍了python使用matplotlib画出的图怎样放到word中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09

最新评论