使用numpy for-loop创建数组

时间:2017-07-13 14:25:56

标签: python arrays numpy for-loop

好的,所以我用Python包装了一个C库并调用了相应的DLL 然后我创建了一个for循环,打印出所有60,000个数据点然后崩溃Python。

这是我的问题:

如何在numpy中创建一个for循环,以便它更快并且不会崩溃python?

这是我已经包装的C库的一小部分示例以及我正在调用的dll:

import ctypes 
from ctypes import * 

class SParm(Structure):
pass

SParm._fields_ = [
        ('name', ctypes.c_char_p),
        ('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)

这是我创建的Python for循环。

time = (g[0].time)
for i in (time):
print(i)

^这会输出值,然后在完成之前崩溃python

我正在尝试这样的事情:

time = (g[0].time)
for i in (time):
np.savetxt(sys.stdout, i)

但是上面的代码向我抛出了这个错误:

ncol = X.shape[1]
IndexError: tuple index out of range

1 个答案:

答案 0 :(得分:0)

这可能不会在第一次尝试时起作用,但我会随着时间的推移编辑问题。尝试以这种方式改变你的for - 循环:

for i in range(N):
   print(i, g[0].time[i])

此处N是您所知道的确切数据点数量。打印i的想法是,如果程序仍然崩溃,我们将会知道它在何时发生。