2

위젯을 사용하여 일부 데이터 생성을 매개 변수화하고 있습니다. 나는 그것을 출력하지 않고 데이터를 포착하고 싶다. 이것이 가능한가? ;interact() 뒤에 추가하면 작동하지 않습니다. 예 :interact() 위젯의 출력 억제

import ipywidgets as widgets 
from ipywidgets import interact, interactive, fixed 

def generate_data(n, p, s): 
    return np.random.negative_binomial(n, p, s) 

w_n = widgets.IntSlider(min=1, max=10000, step=1) 
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01) 
w_s = widgets.IntSlider(min=500,max=10000,step=50) 

data = interact(generate_data, n = w_n, p = w_p, s = w_s); 

답변

2

대신 generate_data()에 값을 반환하는, 당신은 전역 변수를 수정할 수 있습니다. 출력 인쇄를 피하고 나중에 코드에서 val을 사용할 수 있습니다. 나는이 문제를 해결 ipywidgets에 풀 요청을 제출 한

import ipywidgets as widgets 
from ipywidgets import interact, interactive, fixed 
import numpy as np 

val = None 
def generate_data(n, p, s): 
    global val 
    val = np.random.negative_binomial(n, p, s) 

w_n = widgets.IntSlider(min=1, max=10000, step=1) 
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01) 
w_s = widgets.IntSlider(min=500,max=10000,step=50) 

interact(generate_data, n = w_n, p = w_p, s = w_s)