簡體   English   中英

熊貓矢量化方法來創建大小為n的組?

[英]Pandas vectorized way to create groups of size n?

假設我有一個龐大的形狀張量(samples, timesteps, features) ,但是我想將其展開以對Pandas執行groupby操作,如何以向量化的方式相應地標記每個n:n + size元素? 解決速度慢:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.normal(0, 1, 500))
df["sample"] = np.nan

n_timesteps = 50
n_samples = len(df) // n_timesteps

size = n_timesteps
for i in range(n_samples):
    id0 = i * n_timesteps
    id1 = i * n_timesteps + n_timesteps
    df.loc[id0:id1, "sample"] = i

通過整數除以index分配新列:

#default RangeIndex
df['sample'] = df.index // n_timesteps

或者通過創建一維數組numpy的arange

df['sample'] = np.arange(len(df)) // n_timesteps

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM