簡體   English   中英

NumPy - 擴展和重復

[英]NumPy - Expand and Repeat

有沒有辦法“擴展”數組並重復最后一個元素來填充擴展?

另一篇文章討論了用0進行擴展和填充,但我希望將最后一個值重復為填充。

說我有一個數組:

[[1, 2],
 [3, 4],
 [0, 0]]

我需要插入[5, 6, 6]來替換[0, 0] ,顯然 NumPy 不允許這樣做。 但是我可以重塑/擴展到:

[[1, 2, 2],
 [3, 4, 4],
 [5, 6, 6]]

我正在閱讀一個文件,其中值的數量可能長度不同,但我需要數組具有相同的形狀。 一種方法是首先通讀文件並找到最大長度,然后再次讀取它並填充,但文件是 10GB+,所以我更願意通過“擴展”和重復回填來一次性完成。

看起來您需要的是使用edge模式的numpy.pad 從文檔:

‘edge’
    Pads with the edge values of array.

示例代碼:

>>> ar = np.array([[1,2], [4,5]])
>>> ar
array([[1, 2],
       [4, 5]])
>>> np.pad(ar, [(0, 0), (0, 4)], mode="edge")
array([[1, 2, 2, 2, 2, 2],
       [4, 5, 5, 5, 5, 5]])

第一個 (0, 0) 元組指定第一個軸上沒有填充,而第二個基本上是“向左添加 0 填充,向右添加 4”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM