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

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

無需平鋪的高效水平串聯(lián)方式

無需平鋪的高效水平串聯(lián)方式

茅侃侃 2021-12-09 15:39:27
我有兩個(大)數(shù)組。出于說明目的,我使用下面的一個簡單示例:In [14]: arr1 = np.arange(32*512).reshape(32, 512)In [15]: arr2 = np.arange(512).reshape(1, 512)我想對這些數(shù)組進行水平串聯(lián)(即沿軸 1 串聯(lián))。我想出了以下方法來實現(xiàn)這一目標:In [16]: np.hstack([arr1, np.tile(arr2, (arr1.shape[0], 1))]).shapeOut[16]: (32, 1024)這按預(yù)期工作。但是,我想知道是否還有其他有效的方法可以在不使用numpy.tile. 恐怕我會炸毀我的內(nèi)存需求,因為數(shù)組真的很大。如果可以避免這種重復(fù)的行(以匹配 的維度arr1),也許使用廣播,那就太好了!PS之所以要避免這種復(fù)制,是因為內(nèi)存需求的線性增長:In [20]: arr2.nbytesOut[20]: 4096In [19]: np.tile(arr2, (arr1.shape[0], 1)).nbytesOut[19]: 131072In [22]: arr1.shape[0] * arr2.nbytesOut[22]: 131072
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

您可以預(yù)先分配和使用廣播,但它不會節(jié)省太多(我預(yù)計峰值內(nèi)存使用量會下降大約四分之一):


arr1 = np.arange(32*512).reshape(32, 512)

arr2 = np.arange(512).reshape(1, 512)

out = np.empty((32, 1024), arr1.dtype)

out[:, :512] = arr1

out[:, 512:] = arr2

out

#array([[    0,     1,     2, ...,   509,   510,   511],

#       [  512,   513,   514, ...,   509,   510,   511],

#       [ 1024,  1025,  1026, ...,   509,   510,   511],

#       ...,

#       [14848, 14849, 14850, ...,   509,   510,   511],

#       [15360, 15361, 15362, ...,   509,   510,   511],

#       [15872, 15873, 15874, ...,   509,   510,   511]])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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