我有一個資料框如下:
Video Frames Feature1 Feature2 Label
0 0 frame0.jpg feature1 feature2 0
1 0 frame1.jpg feature1 feature2 0
2 0 frame2.jpg feature1 feature2 0
3 0 frame3.jpg feature1 feature2 0
4 1 frame0.jpg feature1 feature2 1
5 1 frame1.jpg feature1 feature2 1
6 1 frame2.jpg feature1 feature2 1
7 1 frame3.jpg feature1 feature2 1
8 2 frame0.jpg feature1 feature2 0
9 2 frame1.jpg feature1 feature2 0
10 2 frame2.jpg feature1 feature2 0
11 2 frame3.jpg feature1 feature2 0
我想創建幀槽(例如 2 個連續幀)并對行進行洗牌,但始終確保保留屬于同一視頻的兩行連續幀。對于上述情況和 2 個連續幀的時隙,結果將是:
Video Frames Feature1 Feature2 Label
0 0 frame0.jpg feature1 feature2 0
1 0 frame1.jpg feature1 feature2 0
2 1 frame2.jpg feature1 feature2 1
3 1 frame3.jpg feature1 feature2 1
4 2 frame2.jpg feature1 feature2 0
5 2 frame3.jpg feature1 feature2 0
6 2 frame0.jpg feature1 feature2 0
7 2 frame1.jpg feature1 feature2 0
8 0 frame2.jpg feature1 feature2 0
9 0 frame3.jpg feature1 feature2 0
10 1 frame0.jpg feature1 feature2 1
11 1 frame1.jpg feature1 feature2 1
我希望插槽中的幀數是可配置的,我的意思是,對于上述情況,我選擇了 2,但可能是 3 或 10 個連續幀。所選框架的視窗不是滑動的,我的意思是,我選擇 [frame0, frame1] 并在下一步中選擇 [frame2, frame3] 但從不選擇 [frame1,frame2]。
我一直在考慮最好的方法,但不清楚如何做。
先感謝您
uj5u.com熱心網友回復:
IIUC,您可以選擇偶數索引隨機播放,并使用 numpy 添加奇數索引:
import numpy as np
order = np.arange(0,len(df), 2)
np.random.shuffle(order)
order = np.vstack([order, order 1]).ravel('F')
df2 = df.iloc[order]
示例輸出:
Video Frames Feature1 Feature2 Label
2 0 frame2.jpg feature1 feature2 0
3 0 frame3.jpg feature1 feature2 0
0 0 frame0.jpg feature1 feature2 0
1 0 frame1.jpg feature1 feature2 0
6 1 frame2.jpg feature1 feature2 1
7 1 frame3.jpg feature1 feature2 1
8 2 frame0.jpg feature1 feature2 0
9 2 frame1.jpg feature1 feature2 0
10 2 frame2.jpg feature1 feature2 0
11 2 frame3.jpg feature1 feature2 0
4 1 frame0.jpg feature1 feature2 1
5 1 frame1.jpg feature1 feature2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445137.html
上一篇:如何使用pythonpyspark提取字串型別字典?
下一篇:獲取具有識別符號列的N行的平均值
