2014-02-20 29 views
16

我想用數組切片修剪我的數組 即numpy的負索引一個[: - 0]

a_trimmed = a[trim_left:-trim_right] 

這是偉大的,除非trim_right是0,我得到a[trim_left:0],這是一個空數組。

我想我可以可否它

a[trim_left:a.shape[0]-trim_right] 

但它的醜陋。什麼是最簡潔的表達方式?

+0

一個[trim_left:]可能? –

+0

@ m9_psy,是的,這是我想要的行爲,因爲[: - 0]等於[:]而不是[0]。我不想添加額外的條件來檢查trim_right == 0. – so12311

+0

爲什麼不將'trim_right'和'trim_left'默認爲'None'而不是'0'? (這樣他們會得到想要的效果。)否則,如果trim_right == 0否則trim_right'必須執行'trim_right = None。 –

回答

26

None更換a.shape[0]是一個有效的切片端點:

a[trim_left:-trim_right or None] 
3

這不是那個醜陋的恕我直言。我能想出的唯一辦法,使之短與len(a)