ctypes 配列を numpy 配列として使用しようとすると、次の警告メッセージが表示されます。
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, numpy
>>> TenByteBuffer = ctypes.c_ubyte * 10
>>> a = TenByteBuffer()
>>> b = numpy.ctypeslib.as_array(a)
C:\Python27\lib\site-packages\numpy\ctypeslib.py:402: RuntimeWarning: Item size
computed from the PEP 3118 buffer format string does not match the actual item s
ize.
return array(obj, copy=False)
>>> b
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=uint8)
ただし、コードは機能しているようです。この警告を無視するのは悪い考えですか?
背景: リアルタイムでデータを生成する C DLL を呼び出しています。データを保持するために一連のバッファを DLL に渡す必要があります。次のバッファがいっぱいになるのを待っている間に、最新のバッファを numpy で処理し、結果を保存したいと思います。上記のようなコードでバッファを生成していますが、うまくいっているように見えますが、重要な問題を隠蔽したくありません。