Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy错误_Python_Arrays_Numpy - Fatal编程技术网

Python numpy错误

Python numpy错误,python,arrays,numpy,Python,Arrays,Numpy,我的代码需要在互联网上收集一些信息,我的工作做得很好。现在我需要从数据库中获取数据并导入到numpy数组中。 但在某个地方我犯了个错误 我对这一切都很陌生,但仍然有很多事情我不完全理解。感谢您的任何帮助 这是一个错误: ValueError:无法将输入数组从形状(1818,2)广播到 形状(1818) 这是我的代码: import numpy as np import sqlite3 as db import selenium from selenium import webdriver imp

我的代码需要在互联网上收集一些信息,我的工作做得很好。现在我需要从数据库中获取数据并导入到numpy数组中。 但在某个地方我犯了个错误

我对这一切都很陌生,但仍然有很多事情我不完全理解。感谢您的任何帮助

这是一个错误:

ValueError:无法将输入数组从形状(1818,2)广播到 形状(1818)

这是我的代码:

import numpy as np
import sqlite3 as db
import selenium
from selenium import webdriver
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from sklearn.neighbors import KNeighborsClassifier

driver = webdriver.Chrome()
driver.get("http://www.rezultati.com/utakmica/nZudUKkp/#detalji")

#Collecting data
try:
    d_kvz = driver.find_element_by_xpath('//*[@id="default-odds"]/tbody/tr[1]/td[2]/span').text
    try:
        d_kv = float(d_kvz)
    except ValueError:
        d_kv = 1.00
except NoSuchElementException:
    d_kvz = 1.00
    d_kv = 1.00

print(d_kv)

# open new link 
driver.find_element_by_id('a-match-odds-comparison').click()
newtab = driver.current_window_handle
driver.switch_to.window(newtab)
time.sleep(2)

# open new link and collect more data
driver.find_element_by_id("bookmark-under-over").click()

try:
    granicax = driver.find_elements_by_xpath(
            "//*[@id='block-under-over-ft-include-ot']/table/tbody/tr/td[preceding-sibling::td[1]/div/a[@title='bet365'] and following-sibling::td/span[@class=' odds-wrap ']]")
    granicaz = granicax[0].text

except IndexError:
    granicaz = 0

granica = float(granicaz)

print(granica)

# Collecting data from db1     
conn = db.connect('rezultati.db')
print("Connected with db1!")
conn.row_factory = lambda cursor, row: row[0]
c = conn.cursor()

br_po = c.execute("SELECT BR_PO FROM model").fetchall()
granica = c.execute("SELECT GRANICA FROM model").fetchall()
kvota = c.execute("SELECT D_KV FROM model").fetchall()

x = np.vstack((granica,kvota)).T              
y = np.vstack((br_po))

print(x)
print(y)

c.close()
conn.close()
print("Connection closed")


knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(x,y)

knn2 = KNeighborsClassifier(n_neighbors=5)
knn2.fit(x,y)

b = (knn.predict([x,y]))[0]
u = (knn2.predict([x,y]))[0]

t = b.tolist()
r = u.tolist()

print(t)
print(r)

rezultat = 0

conn2 = db.connect('ProbaStatistike.db')
print("Connected with db2")
c2 = conn2.cursor() 
c2.execute("INSERT INTO Probica VALUES (?,?,?,?)",
              (granica,t,r,rezultat,))

conn2.commit()
driver.close()    
c2.close()
conn2.close()
print("Connection closed")

该错误试图告诉您,两个数组一起使用时,它们的大小应该相同,但它们不同(例如,
x+y
其中x和y是大小不同的numpy数组,则会出现错误)

在没有进一步信息的情况下,很难确定这是在哪里发生的,但猜测一下,这似乎是错误的:

knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(x,y)

knn2 = KNeighborsClassifier(n_neighbors=5)
knn2.fit(x,y)

b = (knn.predict([x,y]))[0]
u = (knn2.predict([x,y]))[0]
具体地说,使用
(x,y)
进行
fit
后,您不太可能同时使用
x
y
进行
predict
。此外,您通常只需调用
x
(或者更好,一个与原始x不同但在统计上相关的测试集)

有关更多信息,请参见此处的Iris示例:


能否添加完整的堆栈跟踪,以便我们查看错误发生的位置?