2

ウィジェットを使用して、データの生成をパラメータ化しています。出力せずにデータをキャプチャしたいと思います。これは可能ですか?;後に追加し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);
4

2 に答える 2

2

で値を返す代わりにgenerate_data()、グローバル変数を変更できます。val出力の印刷を回避し、後でコードで使用できます。

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)
于 2016-07-08T16:49:21.877 に答える
2

この問題に対処するプル リクエストを ipywidgets に送信しました。

https://github.com/ipython/ipywidgets/pull/712

変更は実際には非常に簡単です。このバージョンでは、追加の kwarg をinteract次のように渡すだけです。

data = interact(generate_data, n = w_n, p = w_p, s = w_s,
                __output_result=False)
于 2016-08-14T10:58:41.943 に答える