[英]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
是設置為什么,因此當nCut
為0
時,這等效於oldArray[nCut:]
。 這不太容易理解,但也不那么冗長。 在oldArray
片的情況下,或者如果數組的表達式比oldArray
更復雜,它可能是更好的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.