[英]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.