欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Python報(bào)錯(cuò)Valueerror: Expected 2d Array Got 1d Array Instead

 更新時(shí)間:2024年01月17日 16:31:19   作者:跡憶客  
如您所知,每種編程語言都會(huì)遇到很多錯(cuò)誤,有些是在運(yùn)行時(shí),有些是在編譯時(shí),下面我就來看看當(dāng)發(fā)生錯(cuò)誤 ValueError: Expected 2D array, got 1D array instead時(shí)該如何解決吧

如您所知,每種編程語言都會(huì)遇到很多錯(cuò)誤,有些是在運(yùn)行時(shí),有些是在編譯時(shí)。 Python 在使用 numpy 庫時(shí)有時(shí)會(huì)遇到數(shù)組錯(cuò)誤。

當(dāng)我們?cè)?numpy 中傳遞一維數(shù)組而不是二維數(shù)組時(shí),會(huì)發(fā)生錯(cuò)誤 ValueError: Expected 2D array, got 1D array instead 。

Python 中的 Numpy 數(shù)組

Numpy 是一個(gè)處理數(shù)組和數(shù)學(xué)運(yùn)算的開源庫。 在 Python 中,列表向我們提供了數(shù)組的用途,但 numpy 的創(chuàng)建者聲稱他們證明數(shù)組比列表快 50 倍。

這是使用 numpy 數(shù)組的核心目的之一。

在 Python 中創(chuàng)建一個(gè) Numpy 數(shù)組

numpy 數(shù)組的語法很簡單。 我們必須將 numpy 庫導(dǎo)入您的程序并相應(yīng)地使用。

import numpy as np
# creating a numpy array
array1 = np.array([2,4,6])
print(array1)

輸出:

[2 4 6]

Python 中錯(cuò)誤 ValueError: Expected 2D array, got 1D array instead 的原因

當(dāng)您在函數(shù)中傳遞一維數(shù)組時(shí)會(huì)發(fā)生此錯(cuò)誤。 但是,該函數(shù)需要一個(gè)二維數(shù)組,因此您傳遞的不是一個(gè)二維數(shù)組,而是一個(gè)單一維度的數(shù)組。

它主要發(fā)生在 predict() 方法中使用機(jī)器學(xué)習(xí)算法。

現(xiàn)在讓我們來看看這個(gè)場(chǎng)景。

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]))

輸出:

修復(fù) Python 中錯(cuò)誤 ValueError: Expected 2D array, got 1D array instead

對(duì)數(shù)據(jù)使用雙方括號(hào)

下面我們已經(jīng)解決了前面例子中的錯(cuò)誤。 修復(fù)錯(cuò)誤的最簡單方法是將維數(shù)組轉(zhuǎn)換為二維數(shù)組。

我們可以將 [0.7,1.10] 括在另一個(gè)方括號(hào)中,以便在將其傳遞給 predict() 方法時(shí)將其轉(zhuǎn)換為二維數(shù)組。

示例代碼:

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() 重塑數(shù)組

將一維數(shù)組轉(zhuǎn)換為二維數(shù)組的另一種方法是使用 reshape() 方法重塑數(shù)組。 您可以使用 reshape() 方法在 Python 中重塑數(shù)組。

每個(gè)維度中元素的數(shù)量決定了數(shù)組的形狀。 您可以使用重塑來添加或刪除數(shù)組維度。

在下面的代碼中,您可以看到使用 reshape() 方法前后 numpy 數(shù)組的維度。

示例代碼:

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]

到此這篇關(guān)于解決Python報(bào)錯(cuò)Valueerror: Expected 2d Array Got 1d Array Instead的文章就介紹到這了,更多相關(guān)Python報(bào)錯(cuò)Valueerror內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論