[英]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])
r1
和r2
是要子集化的行范圍的開始和結束。 c1
和c2
是相同的,但對於列。
僅適用於指定用例的解決方案是:
def fun_strip(array):
return np.array([array[1][1:4],array[2][1:4]])
如果你想要一個更好、更通用的實現,你需要更好地指定用例代表什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.