28

numpy配列を作成しました::

a=np.ndarray([2,3]) 

次に、そのデータがどこにあるかを確認したい::

a.data 
>>>Out[213]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E87A0> 
a.data 
>>>Out[214]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E82A0> 
a.data 
>>>Out[215]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E81C0> 

..。

なぜオフセットアドレスが異なるのですか?c_typesを使用してデータをac関数に転送する場合::

ctypes_array = (ctypes.c_char * a.size * 8).from_address(ptr) 

ptrの値を取得するにはどうすればよいですか?

4

2 に答える 2

35

また、ndarray.__array_interface__あなたが求めているすべての情報を含むdictであるを見てください。

あなたの場合、

pointer, read_only_flag = a.__array_interface__['data']
于 2012-06-29T17:18:08.727 に答える
3

a.datagetter関数が呼び出しごとに新しいバッファオブジェクト(メタデータ)を作成するプロパティである可能性があります。

アドレスを取得するにnumpy.ctypeslib.as_ctypes()は、実装方法を確認してください。

于 2012-06-29T16:17:50.370 に答える