小编tru*_*512的帖子

从阵列中的下n个元素有效地创建数组

精简版:

我正在尝试有效地创建一个数组,如x:

input = [0, 1, 2, 3, 4, 5, 6]

x = [ [0,1,2], [1,2,3], [2,3,4], [3,4,5], [4,5,6] ]
Run Code Online (Sandbox Code Playgroud)

我尝试过简单的for循环,真正的用例需要很长时间.

长版:

(延伸版本)

我有一个400k行的长数据帧,我需要n从当前迭代的元素分割成下一个元素的数组.目前我将它分组,就像下面的process_data功能一样.

一个for基于简单的迭代需要永远在这里(我的硬件上2.5分钟是特定的).我搜索itertoolspandas文档,尝试在这里搜索,找不到任何合适的解决方案.

我目前超级耗时的实现:

class ModelInputParsing(object):
    def __init__(self, data):
        self.parsed_dataframe = data.fillna(0)

    def process_data(self, lb=50):
        self.X, self.Y = [],[]
        for i in range(len(self.parsed_dataframe)-lb):
            self.X.append(self.parsed_dataframe.iloc[i:(i+lb),-2])
            self.Y.append(self.parsed_dataframe.iloc[(i+lb),-1])
        return (np.array(self.X), np.array(self.Y))
Run Code Online (Sandbox Code Playgroud)

输入数据如下所示(Bid提到的位置input):

    Bid     Changes     Expected
0   1.20102 NaN         0.000000
1   1.20102 0.000000    0.000000 …
Run Code Online (Sandbox Code Playgroud)

python arrays performance pandas

4
推荐指数
1
解决办法
133
查看次数

标签 统计

arrays ×1

pandas ×1

performance ×1

python ×1