我相信我有使用numpy数组的内存问题。以下代码正在运行数小时:Numpy阵列内存问题
new_data = npy.array([new_x, new_y1, new_y2, new_y3])
private.data = npy.row_stack([private.data, new_data])
其中new_x,new_y1,new_y2,new_y3是浮点数。
经过大约5个小时的每秒记录数据(超过72000个浮点数)后,程序变得无响应。我认为正在发生的某种重新分配和复制操作正在淹没整个流程。有谁知道这是怎么回事?
我需要一种方法来记录这些数据而不会遇到这种放缓问题。事先没有办法知道这个数组的大小。它不一定需要使用numpy数组,但它需要类似。有谁知道一个好方法?
好主意。 'npy.empty'似乎比'npy.zeros'更合适(可能更快一点)。 – EOL 2010-02-27 15:58:44
这真的很快。使用row_stack方法将其封装到类中将会很好。 – EOL 2010-02-27 16:02:50
请注意'private.data [rowctr] = ...'比'[rowctr,:]'快得多。 – EOL 2010-02-27 16:03:53