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 错误 ValueError: Too Many Values to Unpack
发布时间:2023/07/09 浏览次数:771 分类:Python
-
当赋值运算符 = 左侧的变量不等于赋值运算符 = 右侧的值时,有时会出现 ValueError: Too much value to unpack。当您尝试在单个输入语句中从用户处获取多个输入或将不相等的变量分配给某些值时,通
修复 Python 中错误 ValueError: Setting an Array Element With a Sequence
发布时间:2023/07/09 浏览次数:1175 分类:Python
-
在 Python 中,当您尝试将无效的数据类型分配给数组时,会发生 ValueError: setting an array element with a sequence。 当您尝试将多个值分配给数组上的单个位置时,也可能会发生这种情况。
Python 错误 ValueError: Cannot Convert Float NaN to Integer
发布时间:2023/05/31 浏览次数:723 分类:Python
-
本篇文章将介绍如何修复 ValueError: cannot convert float NaN to integer 。使用 fillna() 方法修复python错误 ValueError: cannot convert float NaN to integer
Python 中错误 ValueError: Invalid Literal for Float()
发布时间:2023/05/17 浏览次数:403 分类:Python
-
Python 中 ValueError: invalid literal for float()。 float() 函数无法将字符串类型转换为浮点数。 相反,它会抛出一个 ValueError,它可能会因您的 Python 版本而异。
如何解决 Python 错误 ValueError: I/O Operation on Closed File
发布时间:2023/05/17 浏览次数:393 分类:Python
-
本文着眼于 Python 中的一个错误:ValueError: I/O operation on closed file。 解决 Python 中由于缩进不当发生的错误 ValueError: I/O operation on closed file
Python 错误 ValueError: Classification Metrics Can't Handle a Mix of Multiclass
发布时间:2023/05/17 浏览次数:1402 分类:Python
-
当您在 sklearn.metrics.accuracy_score() 函数中提供无效数组时,会出现错误 ValueError: Classification metrics can't handle a mix of multiclass and continuous-multioutput targets。 由于准确度分数是一种分类指标,因此当您
Python 错误 ValueError: Unknown Label Type: 'continuous'
发布时间:2023/05/17 浏览次数:889 分类:Python
-
本文将解决 Python 中出现 ValueError: Unknown label type: 'continuous' 错误的原因和解决方案。ValueError: Unknown Label Type: 'continuous' 错误原因
Python 函数 math.log 中错误 ValueError: math domain error
发布时间:2023/05/17 浏览次数:509 分类:Python
-
同样,如果在 math.log() 函数中指定的值为 0 或负数,则会抛出 ValueError。 本篇文章将介绍解决 Python 中的 ValueError: math domain error。
修复 Python 中的 ValueError: list.remove(x): X Not in List 错误
发布时间:2023/04/26 浏览次数:243 分类:Python
-
本篇文章将介绍如何修复Python 中的错误 ValueError: list.remove(x): x not in list in 。