亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過生成缺失的順序數據來提高膨脹數據的性能

通過生成缺失的順序數據來提高膨脹數據的性能

烙印99 2023-09-26 14:47:31
我有一個缺少數據的數據集 - 大約 10,000 到 500,000 行。1 2 3 13 14 15 18 26 ...我需要填充中間的數據,以便后續處理是連續的。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...我測試了兩種夸大數據的方法:import timedf = pandas.DataFrame([['Sam']], columns=['Name'])我創建一個數組然后進行連接:Time(ms) Taken to load : 3.886start_time = time.time_ns()times = [ time for time in range (100)]df2 = pandas.DataFrame(times, columns=['Nos'])df['key'] = 'key'df2['key'] = 'key'df3 = df2.merge(df,on='key')print('Time(μs) Taken to load :', (time.time_ns() - start_time)/1000)使用數據框 - 合并單個記錄:Time(ms) Taken to load : 285.757start_time = time.time_ns()interim = pandas.DataFrame()for idx, row in df.iterrows():    for ts in range (100):        row['Nos'] = ts        interim = interim.append(row)print('Time(μs) Taken to load :', (time.time_ns() - start_time)/1000)顯然,第一種方法的速度快了 95 倍。使用數據幀時是否有更快的方法來做到這一點?當生成數千個中間編號時,append速度會變慢。也許我可以將它保留在內存中直到達到一定大小,然后將其推過去。還有其他方法可以加快數據幀的速度嗎?我可以在 Python 中使用類似于矩陣乘法的方法嗎?該方法針對矢量處理進行了優化,以便我可以生成數組或列表中的所有其他重復字段。這是為了替換第一種方法中的連接,以便我可以將數據暫時保存在內存中。[1(Row) x 1] [ 1 x 100 (Nos) ] = [ 1 x 100 (1 Row Repeated 100 times with this new Nos) ]有沒有辦法生成這個數組,[ time for time in range (100)]而不迭代一個范圍?
查看完整描述

1 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

可能我正在尋找類似的東西 - 它的運行速度快了 23 倍。但尚未在整個數據集上進行測試!


# Optimization 2: Try out using Numpy array :

start_time = time.time_ns()

start_time_s = time.time()


delta = 100

times = numpy.arange(start = start_time_s, stop =start_time_s + delta, step = 1)

times= numpy.expand_dims(times,1)

# print(times)


base = numpy.array(['Sam', 'Dam', 'pam'])

base= numpy.tile(base, (delta, 1))

# print(base)

result = numpy.concatenate((base, times), axis=1)


print('Time(μs) Taken to load :', (time.time_ns() - start_time)/1000)

print('Time(s) Taken to load :', time.time() - start_time_s)


查看完整回答
反對 回復 2023-09-26
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號