我得到以下警告消息時,我嘗試使用一個ctypes數組作爲numpy的陣列3118警告:PEP使用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處理最新的緩衝區並保存結果。我用上面的代碼生成緩衝區,並且事情似乎正在工作,但我不想在地毯下掃除一個重要問題。
有趣的是,這似乎並沒有發生與python2.6,只有python2.7 ... – 2011-02-11 00:21:47