사용자가이 tkinter 코드 (tkintt.py)에 클러스터를 입력하고 제출 버튼을 클릭하면 프로그램이 k-medoids 코드 (example.py)를 얼마나 많은 클러스터 사용자가 입력했지만 오류가 발생합니다. 나를 도울 수 있습니까?tkinter 사용자 입력으로 python 코드를 실행하는 방법
tkintt.py
import Tkinter
from _tkinter import *
root = Tkinter.Tk()
label1 = Tkinter.Label(text = " enter cluster : ")
label1.pack()
clvar = Tkinter.IntVar()
cluster = Tkinter.Entry(bd = 5)
clvar = cluster.get()
cluster.pack()
def open1():
print ("K-MEDOIDS CLUSTERING")
execfile('example.py')
button_1 = Tkinter.Button(text = "SUBMIT", command = open1)
button_1.pack()
root.mainloop()
example.py
from k_medoids import KMedoids
import numpy as np
import matplotlib.pyplot as plt
def example_distance_func(data1, data2):
'''example distance function'''
return np.sqrt(np.sum((data1 - data2)**2))
if __name__ == '__main__':
X = np.random.normal(0,3,(500,2))
model = KMedoids(n_clusters= cluster, dist_func=example_distance_func)
model.fit(X, plotit=True, verbose=True)
plt.show()
오류 :
Traceback (most recent call last):
File "C:\Users\user\Anaconda2\lib\lib-tk\Tkinter.py", line 1537, in __call__
return self.func(*args)
File "C:/Users/user/Anaconda2/K_Medoids-master/tkintt.py", line 15, in open1
execfile('example.py')
File "example.py", line 13, in <module>
model.fit(X, plotit=True, verbose=True)
File "C:\Users\user\Anaconda2\K_Medoids-master\k_medoids.py", line 114, in fit
X,self.n_clusters, self.dist_func, max_iter=self.max_iter, tol=self.tol,verbose=verbose)
File "C:\Users\user\Anaconda2\K_Medoids-master\k_medoids.py", line 54, in _kmedoids_run members, costs, tot_cost, dist_mat = _get_cost(X, init_ids,dist_func)
File "C:\Users\user\Anaconda2\K_Medoids-master\k_medoids.py", line 37, in _get_cost mask = np.argmin(dist_mat,axis=1)
File "C:\Users\user\Anaconda2\lib\site-packages\numpy\core\fromnumeric.py", line 1034, in argmin return argmin(axis, out)
ValueError: attempt to get argmin of an empty sequence
단지 KMedoid를 돌아 다니고 버튼을 클릭 할 때 실행하는 래퍼 함수를 만듭니다. –
@leaf 어떻게해야합니까? 난 너무 혼란 스러워요. 내 코드에 무엇을 추가해야할까요? – kikiegoguma
가지고 계신 오류를 게시 할 수 있습니까? – TheInitializer