# Kas ir np.where Python valodā?

Jūs varat izmantot funkciju `np.where()`, lai strādātu ar NumPy masīviem Python. Tās vektorizētās operācijas padara to efektīvāku nekā cilpu bāzētās metodes.

## Ko dara np.where?

Python funkcija `np.where()` ir jaudīga metode no NumPy bibliotēkas, ko izmanto, lai atlasītu elementus no masīva. Tā identificē un izgūst elementus, kas **atbilst noteiktam nosacījumam**, un pēc tam atgriež indeksus vai vērtības, kas atbilst šim nosacījumam.

Šī funkcija tiek izmantota dažādās jomās, piemēram, datu apstrādē, zinātniskajos aprēķinos, mašīnmācībā un datu analīzē. Datu apstrādē `np.where()` ļauj **filtrēt datus** un aizstāt vērtības masīvos.

## Kāda ir np.where sintakse Python valodā?

Funkcija `np.where()` pieņem **NumPy tipa masīvu**, kas sastāv, piemēram, no veseliem skaitļiem vai Boole’a vērtībām. Tās sintakse izskatās šādi:

```python
import numpy as np
np.where(condition[, x, y])
```

- `condition`: Šis ir nosacījums, kas tiks piemērots masīvam, lai noteiktu, kuri elementi tiks atlasīti.
- `x` un `y` (pēc izvēles): ja norādāt `x` un `y`, tad, ja nosacījums ir izpildīts, tiks atgrieztas vērtības no `x`. Pretējā gadījumā tiks atgrieztas vērtības no `y`. Ja nenorādāt `x` un `y`, `np.where()` atgriezīs indeksus, kas atbilst nosacījumam.

Pēc izpildes `np.where()` atgriež **jaunu NumPy masīvu**. Jaunais masīvs ir rezultāts, kas iegūts, filtrējot vai atlasot elementus no sākotnējā masīva, pamatojoties uz nosacījumu.

## Piemēri, kā lietot np.where

`np.where()` metode ir universāls rīks, lai piemērotu nosacījumus masīviem, un tas ir ļoti noderīgs datu apstrādei. Turpinājumā apskatīsim dažus piemērus, kā to izmantot.

### Aizstāt elementus NumPy masīvā

NumPy funkcija `np.where()` ļauj aizstāt masīva elementus, pamatojoties uz nosacījumu. Pirms sākt darbu, varat pārveidot Python sarakstus masīvos, izmantojot `np.array()`.

```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
```

Tagad, kad mums ir masīvs, mēs vēlamies definēt nosacījumu, lai identificētu elementus, kas ir lielāki par 3. To var izdarīt ar nosacījumu, kas ir `True` elementiem, kuri ir lielāki par 3, un citos gadījumos ir nepatiesa:

```python
condition = arr > 3
```

Tālāk izmantosim `np.where()` un ievadīsim šo nosacījumu. Noteiksim arī, ka vērtības, kas atbilst nosacījumam, tiks aizstātas ar -1, bet visas pārējās vērtības tiks aizstātas ar 0.

```python
new_arr = np.where(condition, -1, 0)
```

Rezultāts `new_arr` satur masīvu, kas ir modificēts, pamatojoties uz nosacījumu. Izvades rezultātā vērtības, kas ir lielākas par 3, tiek aizstātas ar -1. Visas pārējās vērtības tiek aizstātas ar 0.

```python
print(new_arr)
# Output: [0 0 0 -1 -1]
```

### Izmantojiet np.where ar vienu nosacījumu

Ja izmantojat `np.where()` ar vienu nosacījumu un bez aizstājējvērtībām, tas atgriezīs **indeksu kopu**, kam nosacījums ir patiesība.

```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
condition = arr > 2
result = np.where(condition)
print(result)
# Output: (array([2, 3, 4]),)
```

Šajā piemērā `arr` ir NumPy masīvs, kas satur vērtības no 1 līdz 5. `condition = arr > 2` izveido Boole masku, kas identificē elementus `arr`, kuri ir lielāki par 2. `np.where(condition)` tiek izpildīts bez aizstājējvērtībām un rezultātā atgriež indeksu kopu, kas atbilst nosacījumam `arr > 2`. Izvade ir indeksu masīvs, kurā elementi ir lielāki par 2.

### Pārraide ar np.where

NumPy programmā apraide ļauj veikt darbības ar dažādas formas masīviem, ja ir izpildīti noteikti nosacījumi. Ja masīviem ir atšķirīgas formas, NumPy mēģinās tos palielināt, lai tie būtu savietojami.

Teiksim, ka mums ir NumPy masīvs `arr` ar formu (3, 3):

```python
import numpy as np
arr = np.array([[1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
```

Un mums ir vēl viens NumPy masīvs `row` ar formu (3,):

```python
row = np.array([10, 11, 12])
```

Abos masīvos formas nav pilnīgi identiskas, bet, izmantojot apraidi, var veikt operācijas starp tām. Ja, piemēram, mēs vēlētos pievienot vērtības no katras `arr` rindas vērtībām `row` rindā, apraide to padarītu iespējamu.

```python
result = arr + row
print(result)
# Output: [[11 13 15]
    [14 16 18]
    [17 19 21]]
```

Iepriekš minētajā piemērā vienvirziena masīvs `row` tika paplašināts līdz (3, 3) matricai, lai atbilstu `arr` formai. Pēc tam `arr` un `row` elementi tika summēti pa elementiem.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-npwhere-metode/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-npwhere-metode/) for AI/LLM consumption.