Python 错误 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中错误 TypeError: Not All Arguments Converted During String Forma
发布时间:2023/05/30 浏览次数:138 分类:Python
-
模 (%) 运算符就是其中一种方法。 它是 Python 中最古老的字符串格式化方法之一,以错误的方式使用它可能会导致 TypeError: not all arguments converted during string formatting。
解决 Python中 TypeError: Nonetype Object Is Not Subscriptable 错误
发布时间:2023/05/30 浏览次数:162 分类:Python
-
在本文中,我们将讨论为什么 TypeError: NoneType object is not subscriptable 在 Python 中出现以及如何修复它。 我们将学习如何对序列数据类型错误地使用 append()、sort() 和 reverse() 等方法导致
解决 Python中错误 AttributeError: 'Nonetype' Object Has No Attribute 'Group'
发布时间:2023/05/30 浏览次数:68 分类:Python
-
Python 正则表达式(regex)匹配并提取一串特殊字符或模式。 在 Python 中,当我们的正则表达式无法匹配指定的字符串时,会出现 AttributeError: 'NoneType' object has no attribute 'group' 错误。在本文中,我
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 错误 TypeError: __str__ Returned Non-String but Printing Output
发布时间:2023/05/17 浏览次数:142 分类:Python
-
本文旨在解决当我们尝试打印字符串而不是在函数中使用 return 语句时出现的问题。Python 错误TypeError: __str__ Returned Non-String but Printing Output
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 中。
如何解决 Python 中 Urllib HTTP Error 403 Forbidden Message 错误
发布时间:2023/05/17 浏览次数:156 分类:Python
-
今天的文章解释了如何处理错误消息(异常),urllib.error.HTTPError: HTTP Error 403: Forbidden,当它遇到一个被禁止的资源时,由错误类代表请求类产生。Python 中的 urllib 模块