簡體   English   中英

如何剝離 python Numpy 數組中的二維數組?

[英]How to strip a 2d array in python Numpy Array?

假設我有一個像這樣的 np 數組-

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]

我想要一個 function fun_strip(x)。 應用此 function 后,我希望返回的數組如下所示:

[[ 6  7  8]
 [11 12 13]]

您要刪除每個邊框上的 1 個值嗎?

a = np.array([[ 0,  1,  2,  3,  4],
              [ 5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19]])

out = a[1:a.shape[0]-1, 1:a.shape[1]-1]

N的概括:

N = 1
a[N:a.shape[0]-N, N:a.shape[1]-N]

Output:

array([[ 6,  7,  8],
       [11, 12, 13]])

你的具體例子:

arr = np.array([[0,  1,  2,  3,  4],
                [5,  6,  7,  8,  9],
                [10, 11, 12, 13, 14],
                [15, 16, 17, 18, 19]])
arr[1:3, 1:4]

條帶 function 一般:

def strip_func(arr, r1, r2, c1, c2):
   return(arr[r1:r2+1, c1:c2+1])

r1r2是要子集化的行范圍的開始和結束。 c1c2是相同的,但對於列。

僅適用於指定用例的解決方案是:

def fun_strip(array):
    return np.array([array[1][1:4],array[2][1:4]])

如果你想要一個更好、更通用的實現,你需要更好地指定用例代表什么

暫無
暫無

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

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