我有很多numpy数组的异步进程,它们的新值是任意出现的,需要追加。我为此苦苦挣扎了几个小时,想得到这样的东西:
class nbAppend():
def __init__(self):
pass
def append(self,varName,varValues):
self.varName = np.append(self.varName,varValues,axis=0) # !!! not feasible
因此,当一个numpy数组出现x个新值时,它应该在sence'x'=np.append('x',values,axis=0)中更新。我知道字典是有解决办法的
np_add_rows = {}
def process_row(d, key,_cache=np_add_rows):
# keep the rows for each key separate.
lst = _cache.setdefault(key, [])
lst.append(d)
但是这种变通方法会降低5-6x的代码速度,这是不可接受的。那么,如何根据向量的字符串名称将向量附加到numpy矩阵?谢谢你的帮助
在字典中收集数组:
用
collections.defaultdict
表示:或者用常规的口述:
该清单相当于:
通常,这个列表版本会更快,但如果在每次迭代中我们都要做类似的事情
它可以将计时倾斜到有利于数组累积的位置,因为这样可以节省从列表到数组的重复转换
相关问题 更多 >
编程相关推荐