迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 错误 Valueerror: Expected 2d Array, Got 1d Array Instead

作者:迹忆客 最近更新:2023/05/30 浏览次数:

如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时。 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 的原因


修复 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]

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中错误 ValueError: Invalid Literal for Float()

发布时间:2023/05/17 浏览次数:55 分类:Python

Python 中 ValueError: invalid literal for float()。 float() 函数无法将字符串类型转换为浮点数。 相反,它会抛出一个 ValueError,它可能会因您的 Python 版本而异。

Python 错误 TypeError: Unhashable Type: List

发布时间:2023/05/17 浏览次数:112 分类:Python

本文将讨论 TypeError: unhashable type: 'list' 以及如何在 Python 中修复它。因为 Python 字典只接受可散列数据类型作为它们的键,而列表是不可散列的。

Python 中错误 AttributeError: __Exit__

发布时间:2023/05/17 浏览次数:117 分类:Python

尝试用 Python 开发新程序时出错是很常见的。 AttributeError 是 Python 中最常见的错误之一。在本文中,我们将看看如何解决这个 AttributeError: __exit__ 错误,并且我们将通过相关示例和解释来讨论这

Python 中错误 Path Python3 (From --Python=Python3) Does Not Exist

发布时间:2023/05/17 浏览次数:143 分类:Python

错误 The path python3 (from --python=python3) does not exist 可能有几个原因。一种可能是您的系统上没有安装 Python 3。 另一种可能是您安装了多个版本的 Python,而您尝试使用的版本不在您的 PATH 中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便