差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
programming:python:packages:numba [2020/07/01] – ikatakos | programming:python:packages:numba [2020/07/04] – [引数・戻り値に使える主な型] ikatakos | ||
---|---|---|---|
行 94: | 行 94: | ||
* (*2) Unicode文字列(Python3における通常の文字列) | * (*2) Unicode文字列(Python3における通常の文字列) | ||
* (*2) numba.typed.List, | * (*2) numba.typed.List, | ||
- | * コンパイル済み関数 | + | * コンパイル済み関数(いろいろ制約あり) |
- | * 引数としてのみ使用可 | + | |
- | その他もあるかも知れないけど、どこ見れば書いてあるのかよくわかってない。 | + | その他もあるかも知れない。 |
- | なるべく上の3つのみを使うようにした方がよさそう。(個々の問題点は後述) | + | |
+ | なるべく上の3つのみを使うようにした方がよさそう。 | ||
(*1)はdeprecatedで今後使えなくなる可能性が高い。 | (*1)はdeprecatedで今後使えなくなる可能性が高い。 | ||
行 129: | 行 129: | ||
* [[https:// | * [[https:// | ||
- | どちらも、Pythonのlist機能をNumbaで出来る範囲で表現することを目的としたデータ構造。 | + | どちらも、Pythonのlist機能に似せたようなデータ構造。一応、以下の違いがある。 |
- | * reflected list: Pythonのlistをそのまま受け取ってNumba内で解釈できるようにしたもの | + | * reflected list: 扱い上はPythonのlistのまま、制約を加えてNumbaで解釈できるようにしたもの |
* typed list: Numba独自のリスト構造クラス | * typed list: Numba独自のリスト構造クラス | ||
- | reflected list は deprecated。下記を読むと、ネスト等で複雑になると限界があるので typed listに置きかえていく方針らしい。 | + | reflected listは deprecated。ネスト等で複雑になると限界があるのでtyped listに置きかえていく方針らしい。 |
* [[http:// | * [[http:// | ||
- | そのため、reflected list は(問題なく使えるものの)ver.0.45以降では警告が出る。 | + | そのため、reflected listは(今のところ問題なく使えるものの)ver.0.45以降ではその旨の警告が出る。 |
また、typed listの方は「実験的機能」とされていて、バグがあったり、高速化の恩恵が少なくなる可能性が言及されている。 | また、typed listの方は「実験的機能」とされていて、バグがあったり、高速化の恩恵が少なくなる可能性が言及されている。 | ||
行 149: | 行 149: | ||
* reflected list | * reflected list | ||
- | * 外部から与える際は、ネストは不可。要素の型は統一されている必要がある | + | * 外部から与える際はネスト不可、Numba関数内部で生成する場合はネスト可 |
- | * Numba関数内部では、ネスト可能 | + | * Numba関数内部で「'' |
- | * Numba関数内部で「'' | + | |
* typed.List | * typed.List | ||
* ネスト可 | * ネスト可 | ||
- | * '' | + | * 一度に生成することはできなくて、'' |
また、Pythonのデータ構造にはListの他にSet, | また、Pythonのデータ構造にはListの他にSet, |