簡體   English   中英

獲取除 numpy 數組的第一個和最后 n 個元素之外的所有元素

[英]Get all except first and last n elements of a numpy array

我想從數組中獲取除第一個和最后一個 n 元素之外的所有元素,是否可以在不使用 if 語句的情況下保持 n=0 的行為一致的同時執行此操作? (Python 2.7)。 這做我想要的,但如果 nCut=0 就會崩潰:

nCut = 3
newArray = oldArray[nCut:-nCut]

這更接近,但不包括最后一個元素(而且實際上只是一個稍微隱藏的 if 語句)

newArray = oldArray[nCut:-nCut-1*(nCut<1)]

我必須對我從文件加載的一堆數組執行此操作,因此if n=0 的情況下不會有一個大的丑陋加倍會很好。

自己添加len(oldArray)而不是指望切片實現來為你做:

newArray = oldArray[nCut:len(oldArray)-nCut]

你也可以使用-nCut or None來使用None作為端點,如果它不是0

newArray = oldArray[nCut:-nCut or None]

如果不寫入切片端點,則None是設置為什么,因此當nCut0時,這等效於oldArray[nCut:] 這不太容易理解,但也不那么冗長。 oldArray片的情況下,或者如果數組的表達式比oldArray更復雜,它可能是更好的選擇。

暫無
暫無

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

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