解決Python報(bào)錯(cuò)Valueerror: Expected 2d Array Got 1d Array Instead
如您所知,每種編程語言都會(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)文章希望大家以后多多支持腳本之家!
- Python ValueError: invalid literal for int() with base 10 實(shí)用解決方法
- Python異常?ValueError的問題
- 解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes
- Python中ValueError報(bào)錯(cuò)的原因和解決辦法
- Python報(bào)錯(cuò)ValueError: cannot reindex from a duplicate axis的解決方法
- Python報(bào)錯(cuò)ValueError:?cannot?convert?float?NaN?to?integer的解決方法
- 解決Python報(bào)錯(cuò)ValueError list.remove(x) x not in list問題
- Python中異常類型ValueError使用方法與場(chǎng)景
- Python ValueError: all input arrays must have the same shap的問題解決
相關(guān)文章
python如何給字典的鍵對(duì)應(yīng)的值為字典項(xiàng)的字典賦值
這篇文章主要介紹了python如何給字典的鍵對(duì)應(yīng)的值為字典項(xiàng)的字典賦值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07使用pyqt5 實(shí)現(xiàn)ComboBox的鼠標(biāo)點(diǎn)擊觸發(fā)事件
這篇文章主要介紹了使用pyqt5 實(shí)現(xiàn)ComboBox的鼠標(biāo)點(diǎn)擊觸發(fā)事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03簡單快捷:NumPy入門教程的環(huán)境設(shè)置
NumPy是Python語言的一個(gè)擴(kuò)展程序庫,支持高階大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫,本教程是為那些想了解NumPy的基礎(chǔ)知識(shí)和各種功能的人準(zhǔn)備的,它對(duì)算法開發(fā)人員特別有用,需要的朋友可以參考下2023-10-10Pandas高級(jí)教程之Pandas中的GroupBy操作
通常來說groupby操作可以分為三部分:分割數(shù)據(jù),應(yīng)用變換和和合并數(shù)據(jù),本文將會(huì)詳細(xì)講解Pandas中的groupby操作,感興趣的朋友一起看看吧2021-07-07Python利用Matplotlib繪圖無法顯示中文字體的兩種解決方案
matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,這篇文章主要給大家介紹了關(guān)于Python利用Matplotlib繪圖無法顯示中文字體的兩種解決方案,需要的朋友可以參考下2024-03-03python topN 取最大的N個(gè)數(shù)或最小的N個(gè)數(shù)方法
今天小編就為大家分享一篇python topN 取最大的N個(gè)數(shù)或最小的N個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06極簡Python庫CherryPy構(gòu)建高性能Web應(yīng)用實(shí)例探索
今天為大家介紹的是 CherryPy,它是一個(gè)極簡、穩(wěn)定且功能強(qiáng)大的Web框架,可以幫助開發(fā)者快速構(gòu)建高性能的 Web 應(yīng)用程序,使用 CherryPy,你可以輕松地創(chuàng)建RESTful API、靜態(tài)網(wǎng)站、異步任務(wù)和 WebSocket 等應(yīng)用2024-01-01