解決Python報錯Valueerror: Expected 2d Array Got 1d Array Instead
如您所知,每種編程語言都會遇到很多錯誤,有些是在運行時,有些是在編譯時。 Python 在使用 numpy 庫時有時會遇到數(shù)組錯誤。
當(dāng)我們在 numpy 中傳遞一維數(shù)組而不是二維數(shù)組時,會發(fā)生錯誤 ValueError: Expected 2D array, got 1D array instead 。
Python 中的 Numpy 數(shù)組
Numpy 是一個處理數(shù)組和數(shù)學(xué)運算的開源庫。 在 Python 中,列表向我們提供了數(shù)組的用途,但 numpy 的創(chuàng)建者聲稱他們證明數(shù)組比列表快 50 倍。
這是使用 numpy 數(shù)組的核心目的之一。
在 Python 中創(chuàng)建一個 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 中錯誤 ValueError: Expected 2D array, got 1D array instead 的原因
當(dāng)您在函數(shù)中傳遞一維數(shù)組時會發(fā)生此錯誤。 但是,該函數(shù)需要一個二維數(shù)組,因此您傳遞的不是一個二維數(shù)組,而是一個單一維度的數(shù)組。
它主要發(fā)生在 predict() 方法中使用機器學(xué)習(xí)算法。
現(xiàn)在讓我們來看看這個場景。
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 中錯誤 ValueError: Expected 2D array, got 1D array instead
對數(shù)據(jù)使用雙方括號
下面我們已經(jīng)解決了前面例子中的錯誤。 修復(fù)錯誤的最簡單方法是將維數(shù)組轉(zhuǎn)換為二維數(shù)組。
我們可以將 [0.7,1.10] 括在另一個方括號中,以便在將其傳遞給 predict() 方法時將其轉(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ù)組。
每個維度中元素的數(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報錯Valueerror: Expected 2d Array Got 1d Array Instead的文章就介紹到這了,更多相關(guān)Python報錯Valueerror內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python ValueError: invalid literal for int() with base 10 實用解決方法
- Python異常?ValueError的問題
- 解決Python報錯:ValueError:operands?could?not?be?broadcast?together?with?shapes
- Python中ValueError報錯的原因和解決辦法
- Python報錯ValueError: cannot reindex from a duplicate axis的解決方法
- Python報錯ValueError:?cannot?convert?float?NaN?to?integer的解決方法
- 解決Python報錯ValueError list.remove(x) x not in list問題
- Python中異常類型ValueError使用方法與場景
- Python ValueError: all input arrays must have the same shap的問題解決
相關(guān)文章
python如何給字典的鍵對應(yīng)的值為字典項的字典賦值
這篇文章主要介紹了python如何給字典的鍵對應(yīng)的值為字典項的字典賦值,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07使用pyqt5 實現(xiàn)ComboBox的鼠標點擊觸發(fā)事件
這篇文章主要介紹了使用pyqt5 實現(xiàn)ComboBox的鼠標點擊觸發(fā)事件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03簡單快捷:NumPy入門教程的環(huán)境設(shè)置
NumPy是Python語言的一個擴展程序庫,支持高階大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫,本教程是為那些想了解NumPy的基礎(chǔ)知識和各種功能的人準備的,它對算法開發(fā)人員特別有用,需要的朋友可以參考下2023-10-10Python利用Matplotlib繪圖無法顯示中文字體的兩種解決方案
matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,這篇文章主要給大家介紹了關(guān)于Python利用Matplotlib繪圖無法顯示中文字體的兩種解決方案,需要的朋友可以參考下2024-03-03python topN 取最大的N個數(shù)或最小的N個數(shù)方法
今天小編就為大家分享一篇python topN 取最大的N個數(shù)或最小的N個數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06極簡Python庫CherryPy構(gòu)建高性能Web應(yīng)用實例探索
今天為大家介紹的是 CherryPy,它是一個極簡、穩(wěn)定且功能強大的Web框架,可以幫助開發(fā)者快速構(gòu)建高性能的 Web 應(yīng)用程序,使用 CherryPy,你可以輕松地創(chuàng)建RESTful API、靜態(tài)網(wǎng)站、異步任務(wù)和 WebSocket 等應(yīng)用2024-01-01