日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python处理重复的复制粘贴_如何将数组复制/重复N次到新数组中?

發(fā)布時間:2024/9/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python处理重复的复制粘贴_如何将数组复制/重复N次到新数组中? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

假設(shè)您要復(fù)制10次這些值,那么只需^{}10個數(shù)組:def repeat(arr, count):

return np.stack([arr for _ in range(count)], axis=0)

axis=0實(shí)際上是默認(rèn)值,所以這里沒有必要,但我認(rèn)為這樣可以更清楚地說明您在前面添加了新的軸。

事實(shí)上,這與stack的示例所做的幾乎相同:>>> arrays = [np.random.randn(3, 4) for _ in range(10)]

>>> np.stack(arrays, axis=0).shape

(10, 3, 4)

乍一看,您可能認(rèn)為^{}或^{}更適合。

但是repeat是關(guān)于在現(xiàn)有軸上重復(fù)(或展平數(shù)組),因此您需要在之前或之后reshape。(這同樣有效,但我認(rèn)為沒有那么簡單。)

而tile(假設(shè)您使用類似reps-的標(biāo)量數(shù)組reps,它基本上是repeat)是關(guān)于在所有方向上填寫多維規(guī)范,這比您希望的這個簡單情況復(fù)雜得多。

所有這些選擇都將同樣有效。它們都會將數(shù)據(jù)復(fù)制10次以上,這是很昂貴的部分;任何內(nèi)部處理、構(gòu)建微型中間對象等的成本都無關(guān)緊要。提高速度的唯一方法是避免復(fù)制。你可能不想這么做。

但是,如果要共享10個副本中的行存儲,您可能需要^{}:def repeat(arr, count):

return np.broadcast_to(arr, (count,)+arr.shape)

注意broadcast_to實(shí)際上并不能保證它避免復(fù)制,只是它返回某種只讀視圖,其中“廣播數(shù)組的多個元素可能引用單個內(nèi)存位置”。實(shí)際上,這會避免抄襲。如果出于某種原因(或者您想要一個可寫的視圖,這通常是一個糟糕的主意,但是也許您有一個很好的理由……)您確實(shí)需要保證這一點(diǎn),那么您必須下拉到^{}:def repeat(arr, count):

shape = (count,) + arr.shape

strides = (0,) + arr.strides

return np.lib.stride_tricks.as_strided(

arr, shape=shape, strides=strides, writeable=False)

請注意,as_strided的一半文檔警告您可能不應(yīng)該使用它,另一半則警告您絕對不應(yīng)該將其用于可寫視圖,因此…在執(zhí)行之前,請確保這是您想要的。

總結(jié)

以上是生活随笔為你收集整理的python处理重复的复制粘贴_如何将数组复制/重复N次到新数组中?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。