2014-02-20 13 views
16

Ich möchte Array verwenden schneiden meine Array dhnumpy negativen Indizierung a [: - 0]

a_trimmed = a[trim_left:-trim_right] 

das ist großartig zu trimmen, außer wenn trim_right 0 ist, erhalte ich a[trim_left:0], die ein leeres Array ist .

Ich glaube, ich kann, könnte es zu

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

aber es ist hässlicher. Was ist der sauberste Weg, dies auszudrücken?

+0

a [trim_left:] sein kann? –

+0

@ m9_psy, ja das ist mein gewünschtes Verhalten, denn ein [: - 0] ist gleich einem [:] statt einem [0]. Ich möchte keine zusätzliche Bedingung hinzufügen, um zu überprüfen, ob trim_right == 0. – so12311

+0

Warum nicht 'trim_right' und' trim_left' standardmäßig auf 'None' anstatt auf' 0' setzen? (Auf diese Weise haben sie den gewünschten Effekt.) Andernfalls müssen Sie tun, trim_right = Keine, wenn trim_right == 0 else trim_right. –

Antwort

26

None ist ein gültiger Scheibe Endpunkt:

a[trim_left:-trim_right or None] 
3

Es ist nicht so hässlich IMHO. Nur so kann ich mit oben kommen kann es kürzer machen ersetzt a.shape[0] mit len(a)

Verwandte Themen