我有一個很難用這樣的: ,就像我跟PyQt的編程GUI的我想構建自己的工作:子程序這需要所有預定義變量從「主程序」
我有我的GUI幾個按鈕應該用scikitlearn從我的計算中調用「不同的子程序」。
我有用於預測的鍵「PRED」,另一個用於一些曲線稱爲「PLOT」
當這些按鈕被點擊一個python「計算程序」被稱爲與
class MyDia(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
self.connect(self.buttonOPLOT,
QtCore.SIGNAL("clicked()"), self.onPLOT)
self.connect(self.buttonPRED,
QtCore.SIGNAL("clicked()"), self.onPRED)
def onPRED
if self.button_1.checkState():
a=1
if self.button_2.checkState():
a=2
query=np.zeros((1,18))
for i in range(0,18,1):
try:
query[0,i]= float(self.tableWidget.item(0,i).text())
### when user has made his choices the data goes do this
from sk_calc import main, pred
main() #after main, "pred" should be called with some definitions that
have been made in "main"
pred(a) #a is some parameter of a regression (i try to keep it easy)
在現在我在不同的文件中使用不同的「計算」程序「sk_plot和sk_pred」 - 目標是僅更改一個...其中「main」在特定作業(PRED或PLOT ...)之前運行...
THE UNIQUE計算程序應該「看起來」/被構造成類似於這樣的:
def main():
import numpy as np
import #all modules from scikitlearn
DATA=np.genfromtxt(direc+"\some.csv",delimiter=";",dtype=float ,skip_header=2, usecols=range(0,22)) #reading in a csv file with my data
features=DATA[:,4:22]#the "X" of my DATA
targets=DATA[:,1]#the "Y" of my DATA
svr_rbf = SVR(kernel='rbf', C=2e4, gamma=a) #Regression using the DATA #a comes from user click
svr_rbf.fit(features, targets).predict(features)# method of scikit-learn
def pred():
Prediction=svr_rbf.predict(query)
#query is defined by the user in the gui typing in some values
print(Pred_ic)
def plot():
#... something different using pylab but ALSO DATA features and targets
你看到我想要的一些代碼(主)unindependantly運行whick按鈕被點擊 ,「計算計劃」應執行有變量和數據在主定義的後一部分() 。
我爲此使用課堂嗎?如果是的話,我必須記住什麼?這是什麼步驟...
你能概括你的問題?就像,你究竟需要什麼。從函數中導入變量?將變量傳遞給正在運行的腳本? – aIKid
當我運行一個函數的「小節」時,我希望在函數的main()函數中定義的所有東西都可以在本小節中找到 - 變量名稱,值等... – Hiatus