0
私はPythonでCライブラリをラップし、対応するDLLを呼び出しました。次に、すべてのデータポイントを出力するfor-loopを作成しました。ここ は私のコードと私は包まれているライブラリの小さなサンプルです:forループの値がnumpyの配列
import ctypes
from ctypes import *
class ParmData(Union):
_fields_ = [
('c', ctypes.POINTER(ctypes.c_ubyte)),
('f', ctypes.POINTER(ctypes.c_float))]
class SParm(Structure):
pass
SParm._fields_ = [
('data', ctypes.POINTER(ParmData)),
('time', ctypes.POINTER(ctypes.c_float))]
dll.readSParm.argtypes = (POINTER(SFile), c_char_p, c_double, c_double, c_double, POINTER(TTag), c_ushort,)
dll.readSParm.restype = POINTER(SParm)
g = dll.readSParm(SF, ParmName, startTime, stopTime, Null, None, convertType)
dll.freeSParm(g)
これは、forループ、私はPythonで作成されています:
for i in range(0, 50000):
print(i, (g[0].data[0].f[i]), (g[0].time[i]))
(g[0].data[0].f)
(g[0].time)
は、すべてのデータを含むオブジェクトへのポインタです。
このようなforループの外観の結果は、2列目のデータであり、第3は、そのデータに対して対応する時間値である:
2 -4864024.0 -1027.21630859375
3 5.114739e-43 -1026.21630859375
4 2.840103e-37 -1025.21630859375
5 2.250064e-38 -1024.21630859375
私の質問はこれです:
どのようにすることができますこのデータを低次元の配列にしますか?私は非常に多くのデータポイントを持っているので、私は、それらのすべてを入力しカント
これはうまくいく、ありがとう。なぜあなたはそれが汚いと思っているのだろうか? –