Numpy-filter

Numpy Filter



Het ophalen van elementen of het ophalen van elementen uit sommige gegevens staat bekend als filteren. NumPy is het pakket waarmee we arrays kunnen maken en elk type gegevens in de vorm van een array kunnen opslaan. Als het gaat om het filteren in arrays tijdens het werken met NumPy-pakketten die door python worden geleverd, kunnen we gegevens uit arrays filteren of ophalen met behulp van ingebouwde functies van NumPy. Een Booleaanse indexlijst, een lijst met Booleans die overeenkomt met arrayposities, kan worden gebruikt om arrays te filteren. Als het element in de index van de array waar is, wordt het in de array opgeslagen, tenzij het element van de array wordt uitgesloten.

Stel dat we de gegevens van studenten hebben opgeslagen in de vorm van arrays en we willen de mislukte studenten eruit filteren. We filteren gewoon de array en sluiten de mislukte studenten uit en een nieuwe array van de geslaagde student wordt verkregen.

Stappen om een ​​NumPy-array te filteren

Stap 1: NumPy-module importeren.







Stap 2: Een array maken.



Stap 3: Filtervoorwaarde toevoegen.



Stap 4: Maak een nieuwe gefilterde array.





Syntaxis:

Er zijn meerdere manieren om arrays te filteren. Het hangt af van de conditie van het filter, bijvoorbeeld of we slechts één conditie hebben of meer dan één conditie.

Methode 1: Voor één voorwaarde zullen we de volgende syntaxis volgen:

reeks [ reeks < voorwaarde ]

In de hierboven genoemde syntaxis is 'array' de naam van de array waaruit we de elementen zullen filteren. En de voorwaarde is de status waarop de elementen worden gefilterd en de operator '<' is het wiskundige teken dat minder dan vertegenwoordigt. Het is efficiënt om het te gebruiken als we maar één voorwaarde of verklaring hebben.



Methode 2: De operator 'OF' gebruiken

reeks [ ( reeks < conditie1 ) | ( reeks > conditie2 ) ]

In deze methode is 'array' de naam van de array waaruit we waarden zullen filteren en de voorwaarde wordt eraan doorgegeven. Exploitant “|” wordt gebruikt om de 'OF' -functie weer te geven, wat betekent dat van beide voorwaarden één waar moet zijn. Het is handig als er twee voorwaarden zijn.

Methode 3: De 'AND' -operator gebruiken.

reeks [ ( reeks < conditie1 ) & ( reeks > conditie2 ) ]

In de volgende syntaxis is 'array' de naam van de array die moet worden gefilterd. Terwijl de voorwaarde de status zal zijn zoals besproken in de bovenstaande syntaxis, terwijl de operator '&' de AND-operator is, wat betekent dat beide voorwaarden waar moeten zijn.

Methode 4: Filteren op vermelde waarden

reeks [ bijv. in1d ( reeks , [ Lijst met waarden ] ) ]

In deze methode hebben we onze gedefinieerde array 'np.in1d' doorgegeven die wordt gebruikt om twee arrays te vergelijken, ongeacht of het element van de array dat moet worden gefilterd in een andere array aanwezig is of niet. En de array wordt doorgegeven aan de functie np.in1d ​​die uit de gegeven array moet worden gefilterd.

Voorbeeld # 01:

Laten we nu de hierboven besproken methode in een voorbeeld implementeren. Ten eerste zullen we onze NumPy-bibliotheken opnemen die door Python worden geleverd. Vervolgens maken we een array met de naam 'my_array' met de waarden '2', '3', '1', '9', '3', '5', '6' en '1'. Vervolgens zullen we onze filtercode die 'my_array [(my_array < 5)]' is, doorgeven aan de print-instructie, wat betekent dat we de waarden filteren die kleiner zijn dan '5'. In de volgende regel hebben we nog een array met de naam 'array' gemaakt die verantwoordelijk is voor de waarden '1', '2', '6', '3', '8', '1' en '0'. Aan de printopdracht hebben we de voorwaarde doorgegeven dat we de waarden die groter zijn dan 5 zullen afdrukken.

Ten slotte hebben we nog een array gemaakt die we 'arr' hebben genoemd. Het heeft de waarden '6', '7', '10', '12' en '14'. Voor deze array zullen we nu de waarde afdrukken die niet in de array bestaat om te zien wat er zal gebeuren als de voorwaarde niet overeenkomt. Om dit te doen, hebben we de voorwaarde doorgegeven die de waarde filtert die gelijk is aan de waarde '5'.

importeren numpy net zo bijv.

mijn_array = bijv. reeks ( [ twee , 3 , 1 , 9 , 3 , 5 , twee , 6 , 1 ] )

afdrukken ( 'waarden kleiner dan 5' , mijn_array [ ( mijn_array < 5 ) ] )

reeks = bijv. reeks ( [ 1 , twee , 6 , 3 , 8 , 1 , 0 ] )

afdrukken ( 'waarden groter dan 5' , reeks [ ( reeks > 5 ) ] )

arr = bijv. reeks ( [ 6 , 7 , 10 , 12 , 14 ] )

afdrukken ( 'waarden gelijk aan 5' , arr [ ( arr == 5 ) ] )

Na het uitvoeren van de code hebben we de volgende uitvoer als resultaat, waarin we de 3 uitgangen hebben weergegeven, de eerste is voor de elementen kleiner dan '5' in de tweede uitvoering hebben we de waarden groter dan '5' afgedrukt. Aan het einde hebben we de waarde afgedrukt die niet bestaat, omdat we kunnen zien dat deze geen fout weergeeft, maar de lege array weergeeft, wat betekent dat de gewenste waarde niet bestaat in de gegeven array.

Voorbeeld # 02:

In dit geval zullen we enkele van de methoden gebruiken waarin we meer dan één voorwaarde kunnen gebruiken om de arrays te filteren. Om het uit te voeren, zullen we eenvoudig de NumPy-bibliotheek importeren en vervolgens een eendimensionale array van grootte '9' maken met de waarden '24', '3', '12', '9', '3', '5', “2”, “6” en “7”. In de volgende regel hebben we een print-statement gebruikt waaraan we een array hebben doorgegeven die we hebben geïnitialiseerd met de naam 'my_array' met de voorwaarde als argument. Hierin zijn we geslaagd voor de voorwaarde of, wat betekent dat van beide voorwaarden één voorwaarde waar moet zijn. Als beide waar zijn, worden de gegevens voor beide voorwaarden weergegeven. In deze toestand willen we de waarden afdrukken die kleiner zijn dan '5' en groter dan '9'. In de volgende regel hebben we de AND-operator gebruikt om te controleren wat er zal gebeuren als we een voorwaarde gebruiken om de array te filteren. In deze toestand hebben we waarden weergegeven die groter zijn dan '5' en kleiner dan '9'.

Numpy importeren net zo bijv.

mijn_array = bijv. reeks ( [ 24 , 3 , 12 , 9 , 3 , 5 , twee , 6 , 7 ] )

afdrukken ( “waarden kleiner dan 5 of groter dan 9 , mijn_array [ ( mijn_array < 5 ) | ( mijn_array > 9 ) ] )

afdrukken ( “waarden groter dan 5 en minder dan 9 , mijn_array [ ( mijn_array > 5 ) & ( mijn_array < 9 ) ] )

Zoals te zien is in het onderstaande fragment, wordt ons resultaat voor de bovenstaande code weergegeven waarin we de array hebben gefilterd en het volgende resultaat hebben gekregen. Zoals we kunnen zien, worden de waarden groter dan 9 en kleiner dan 5 weergegeven in de eerste uitvoer en worden de waarden tussen 5 en 9 verwaarloosd. Terwijl we in de volgende regel de waarden tussen '5' en '9' hebben afgedrukt, wat '6' en '7' zijn. De andere waarden van arrays worden niet weergegeven.

Conclusie

In deze handleiding hebben we kort het gebruik van filtermethoden besproken die worden geleverd door het NumPy-pakket. We hebben meerdere voorbeelden geïmplementeerd om voor u uit te werken hoe u de filtermethodologieën van numpy het beste kunt implementeren.