34

memoryviewの完全な説明はここにあります:

objmemoryviewを参照するを作成します。objはバッファプロトコルをサポートする必要があります。バッファプロトコルをサポートする組み込みオブジェクトには、とが含まれます。bytesbytearray

Aには、元のオブジェクトobjによって処理されるアトミックメモリユニットである要素memoryviewの概念があります。およびなどの多くの単純なタイプの場合、要素は1バイトですが、などの他のタイプはより大きな要素を持つ場合があります。bytesbytearrayarray.array

4

2 に答える 2

27

メモリビューは基本的に、Python 自体の一般化された NumPy 配列構造です (数学なし)。最初にコピーすることなく、データ構造 (PIL イメージ、SQLlite データベース、NumPy 配列など) 間でメモリを共有できます。これは、大規模なデータ セットでは非常に重要です。

これを使用すると、非常に大きなファイルへのメモリ マップ、そのファイルの一部をスライスし、その部分で計算を行うことができます (NumPy を使用している場合は最も簡単です)。

于 2013-04-17T04:22:59.570 に答える
4

ドキュメントから、「コピーせずにバッファプロトコルをサポートするオブジェクトの内部データにアクセスする」ために使用されるため、メモリをいっぱいにすることなく、巨大なデータのチャンクで処理を行うことができると思います。例が必要かどうかはわかりませんが、残念ながら思いつきません。

于 2011-01-30T20:52:18.570 に答える