最快的方法来增长一个numpy数值数组。
- 论坛
- 最快的方法来增长一个numpy数值数组。
10 浏览
最快的方法来增长一个numpy数值数组。
要求:
- 我需要根据数据任意增长一个数组。
- 我可以猜测数组的大小(大约100-200个),但不能保证数组每次都能容纳。
- 一旦数组增长到最终大小,我需要对其进行数值计算,所以最终希望得到一个二维的numpy数组。
- 速度至关重要。例如,对于300个文件中的一个文件,update()方法被调用4500万次(大约需要150秒),finalize()方法被调用50万次(总共需要106秒),总共需要大约250秒。
这是我的代码:
def __init__(self): self.data = [] def update(self, row): self.data.append(row) def finalize(self): dx = np.array(self.data)
我尝试过其他的代码,但速度慢得多。
class A: def __init__(self): self.data = np.array([]) def update(self, row): np.append(self.data, row) def finalize(self): dx = np.reshape(self.data, size=(self.data.shape[0]/5, 5))
下面是调用的原理图:
for i in range(500000): ax = A() for j in range(200): ax.update([1,2,3,4,5]) ax.finalize() # 对ax进行一些处理