本ウェブページは「
Pythonによるプログラミング入門 東京大学教養学部テキスト アルゴリズムと情報科学の基礎を学ぶ」のサポートライブラリであるitaライブラリのリファレンスマニュアルです。
- ita.gen_hw_data()
整数2つからなる列を返します。1つ目の値が身長(cm)、2つ目の値が体重(kg)をイメージしたランダムな値です。(が、常識的な身長・体重からかけ離れた値となることもあります)
- ita.gen_spring_data()
整数2つからなる列を返します。1つ目の値ばねに吊るしたおもりの重さ(g)、2つ目の値バネの伸び(mm)をイメージしたランダムな値です。
- ita.lifegame_glider()
ライフゲームにおける「グライダー」と呼ばれる形(5.1節、図5.5参照)に対応する2次元配列を返します。
- ita.lifegame_acorn()
ライフゲームにおける「ドングリ」と呼ばれる形(5.1節、図5.6参照)に対応する2次元配列を返します。
- ita.array.make1d(n, value=0, random=False)
長さnの一次元配列を返します。randomの値が真(True)であれば、要素は0から1までのランダムな実数となります(valueの値は無視されます)。randomが指定されないか、または偽(False)であれば、要素はすべてvalueの値になります。valueが指定されない場合、要素はすべて0になります。(5.3節参照)
- ita.array.make2d(n, m, value=0, random=False)
大きさn×mの二次元配列(長さmの一次元配列がn個並んだもの)を返します。要素の決め方はmake1dと同様です。(5.5節参照)
- ita.array.make3d(n, m, k, value=0, random=False)
大きさn×m×kの三次元配列(大きさm×kの二次元配列がn個並んだもの)を返します。要素の決め方はmake1dと同様です。(5.5節参照)
- ita.array.print2d(data, colLabels=None, rowLabels=None)
二次元配列dataを表形式で表示します。colLabelsに一次元配列を指定すると、その各要素が列見出しとなります。同様に、rowLabelsに一次元配列を与えると行見出しとなります。
- ita.bench.bench(f, args, count=1, criteria="time", measure=default_measure)
関数fに対して、列argsで指定された各引数をそれぞれ与えて実行し、実行時間(など)を計測します。返値は、各引数の「大きさ」の列と「計測結果」の列の組です。これをita.bench.plot関数に渡すことでグラフにプロットすることができます。動作の詳細はita.bench.plot.evalWithTime関数が規定しています。(7.4節参照)
- ita.bench.evalWithTime(f, arg, count=1, criteria="time", measure=default_measure)
関数fに対して引数argを与えて実行し、実行時間(など)を計測します。与えられた引数が組(tuple)の場合には、fが複数の引数を取る関数だとみなし、その要素をそれぞれ順にfに与えます。返値は引数の「大きさ」と「計測結果」です。「大きさ」や「計測結果」の詳細はキーワード引数によって決まります。
- countに値が指定されている場合、関数fをその回数実行し、平均値を最終的な計測結果とします。指定されていない場合には計測を1回行います。
- criteriaには"time"、"access"、"recursion"の3種類が指定できます。
- "time"の場合、実行時間を計測します。criteriaが指定されていないときもこの動作になります。
- "access"の場合、引数として与えられた配列・集合・辞書などの要素の読み出し・書き込みの回数を計測します。組み込みのシーケンス型・集合型・マッピング型にのみ対応しています。これらの型の要素に対する一部の操作(例えば==)が失敗することがあります。また、引数をもとにして(例えばsorted関数で)別のデータを作った場合、そのデータに対する操作回数が計測できないことがあります。
- "recursion"の場合、関数fがf自身を再帰呼出しした回数を計測します。他の関数を呼んだ回数は数えません。関数fの再帰呼出しの構造が複雑な場合、適切に数えられない場合があります。
- 引数の大きさは、以下の規則で計算されます。
- measureに関数が指定されていた場合、その関数を引数に適用した結果を「大きさ」とします。
- measureが指定されておらず、引数が組(tuple)の場合、その各要素の「大きさ」の総和を、その引数の「大きさ」とします。
- 上記どちらにも合致せず、引数がlen関数に対応している場合(配列など)、len関数を適用した結果をその引数の「大きさ」とします。
- 上記いずれにも合致せず、引数がabs関数に対応している場合(数値など)、abs関数を適用した結果をその引数の「大きさ」とします。
ita.bench.plot(data, xlogscale=False, ylogscale=False)
ita.bench.bench関数の返値をグラフにプロットします。x軸方向が引数の大きさ、y軸方向が計測結果になります。xlogscaleの値が真(True)であればx軸が、ylogscaleの値が真(True)であればy軸が、それぞれ対数スケールになります。(7.4節参照)
- ita.excheck.excheck(f, testcases=None, places=7, timeout=2)
関数fに対して、testcasesで指定したテストを行い、期待した動作をするかどうかを確認します(B.1節参照)。関数fが教科書の練習問題にあるもので、testcasesが指定されていない場合、ライブラリ内で準備してあるテストを行います。そうでない場合、testcasesの各要素(仮にtとします)使い、以下のようにテストを行います。すべて要素について「等しい」という結果になったときにテストは成功し、それ以外はテスト失敗です。
- tの先頭要素を入力として関数fに与えて実行します。実行がtimeoutで指定された秒数(指定がない場合には2秒)以内に終わらなければテスト失敗です。
- fの実行結果をtの2番目の要素と等しいかどうか確認します。実行結果が実数の場合、placesで指定した桁数(指定がない場合は7桁)で四捨五入した結果が一致した場合に「等しい」とします。実行結果が配列の場合、長さが等しく、さらに各要素が「等しい」場合に「等しい」とします。それ以外の場合には、==で比較した結果が真となる場合に「等しい」とします。
- ita.plot.image_show(data)
dataを画像だとみなして描画します。
dataが二次元配列の場合、各要素は0を黒、1を白としてグレースケール画像として描写します。
dataが三次元配列の場合、最内の配列の最初の要素を赤、次の要素を緑、その次の要素を青の明るさ(それぞれ0が最も暗く、1が最も明るい)とみなし、加法混色のカラー画像として描画します。(5.5節参照)
- ita.plot.animation_show(data, interval=500)
dataがimage_show関数で描画できる画像の列だとして、それらの画像を連続的に描画して動画を表示します。各画像の描画間隔はintervalミリ秒(指定がない場合は500ミリ秒)です。(5.5節参照)
- ita.plot.plotdata(data, line=False, multiplot=False)
dataに対応するグラフを描画します。描画するグラフは以下のように決まります。
- dataが三次元配列の場合、後述のita.plot.plot_clusters関数を呼び出します。この場合、lineの値によらず散布図になります。
- dataが二次元配列かつmultiplotの値が真の場合には、「一次元配列のデータの集合」とみなします。下記の「一次元配列の場合」のルールに従い、それぞれのデータを描画します。
- dataが二次元配列の場合、「点の集合」とみなします。各点については、その最初の値をx軸方向の値、次の値をy軸方向の値としてプロットします。lineの値が真の場合には折れ線グラフ、そうでない場合には散布図を描画します。
- dataが一次元配列の場合、その要素が何番目かをx軸方向の値、各要素の値をy軸方向の値として用います。その点以外はdataが二次元の場合と同様です。(4.3節、図4.1参照)
- ita.plot.plot_clusters(data)
三次元配列dataを「点の集合(クラスター)の集合」とみなし、散布図を描画します。各点については、その最初の値をx軸方向の値、次の値をy軸方向の値としてプロットします。同じクラスターの点には同じ色が塗られます。(12.3節、図12.1参照)
- ita.plot.linear_fit(data)
dataは二次元配列です。dataを2次元上の点の集合とみなし、回帰分析を行い、その結果を描画します。各点は、最初の要素をx軸方向の値、次の要素をy軸方向の値とみなします。各点が長さ3以上の配列の場合、最初3つ目以降の値は無視されます。返値は残差(回帰分析で得られた直線から各点がどの程度離れているかの指標)です。(9.2節、図9.1参照)
(c) 2019―, 東京大学出版会,森畑明昌