第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

通過生成缺失的順序數(shù)據(jù)來提高膨脹數(shù)據(jù)的性能

通過生成缺失的順序數(shù)據(jù)來提高膨脹數(shù)據(jù)的性能

烙印99 2023-09-26 14:47:31
我有一個缺少數(shù)據(jù)的數(shù)據(jù)集 - 大約 10,000 到 500,000 行。1 2 3 13 14 15 18 26 ...我需要填充中間的數(shù)據(jù),以便后續(xù)處理是連續(xù)的。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 ...我測試了兩種夸大數(shù)據(jù)的方法:import timedf = pandas.DataFrame([['Sam']], columns=['Name'])我創(chuàng)建一個數(shù)組然后進(jìn)行連接: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)使用數(shù)據(jù)框 - 合并單個記錄: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 倍。使用數(shù)據(jù)幀時是否有更快的方法來做到這一點(diǎn)?當(dāng)生成數(shù)千個中間編號時,append速度會變慢。也許我可以將它保留在內(nèi)存中直到達(dá)到一定大小,然后將其推過去。還有其他方法可以加快數(shù)據(jù)幀的速度嗎?我可以在 Python 中使用類似于矩陣乘法的方法嗎?該方法針對矢量處理進(jìn)行了優(yōu)化,以便我可以生成數(shù)組或列表中的所有其他重復(fù)字段。這是為了替換第一種方法中的連接,以便我可以將數(shù)據(jù)暫時保存在內(nèi)存中。[1(Row) x 1] [ 1 x 100 (Nos) ] = [ 1 x 100 (1 Row Repeated 100 times with this new Nos) ]有沒有辦法生成這個數(shù)組,[ time for time in range (100)]而不迭代一個范圍?
查看完整描述

1 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個贊

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


# 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)


查看完整回答
反對 回復(fù) 2023-09-26
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號