2

ウィジェットを使用してデータの生成をパラメータ化しています。私はそれを出力せずにデータをキャプチャしたいと思います。これは可能ですか? interact()の後に;を追加すると機能しません。例:代わりにgenerate_data()の値を返すので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

、あなたがグローバル変数を変更することができます。それは出力の印刷を避け、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) 
関連する問題