Få array elementer fra index til ende

Antag at vi har følgende matrix:

import numpy as np
a = np.arange(1, 10)
a = a.reshape(len(a), 1)
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])

Nu, jeg ønsker at få adgang til elementer fra indeks: 4 end:

a[3:-1]
array([[4],
       [5],
       [6],
       [7],
       [8]])

Når jeg gør dette, skal den resulterende vektor mangler det sidste element, der nu er fem elementer i stedet for seks, hvorfor sker det, og hvordan kan jeg få det sidste element uden at tilføje det?

Forventet output:

array([[4],
       [5],
       [6],
       [7],
       [8],
       [9]])

På forhånd tak

OriginalForfatteren Edgar Andrés Margffoy Tuay | 2012-12-05

1 svar

  1. 29

    Den [:-1] fjerner sidste element. I stedet for at

    a[3:-1]

    skrive

    a[3:]

    Kan du læse op på Python-udskæring notation her: Forklare Python ‘ s notation skive

    NumPy udskæring er en udvidelse af denne. Den NumPy tutorial har nogle dækning: Indeksering, Udskæring og Iteration.

    Der arbejdede ja, tak, jeg forsøger at konvertere nogle matlab kode til python/numpy, og at reference guide NumPy fot Matlab-brugere mangler nogle vigtige spørgsmål, som indeksering og udskæring.
    Jeg vil anbefale at læse den NumPy tutorial jeg er knyttet til. Det er ikke perfekt, men bør være en god start.
    Er der et formål eller til andre “index”, der kan gå, hvor -1 er at gøre det opfører sig som a[3:]? Jeg synes ofte, at det ville forenkle den kode jeg skriver..
    Jeg har fundet svaret–brug None–som a[3:None].

    OriginalForfatteren NPE

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *