np.where: bagaimana menemukan indeks nilai dalam array numpy – Codewithaden

Modul Numpy Python menyediakan fungsi untuk memilih elemen berdasarkan kondisi. Untuk bekerja dengan array di Python, gunakan Perpustakaan Numpy. Sayangnya, itu tidak datang dengan Python secara default, dan Anda perlu menginstalnya terlebih dahulu dan kemudian mengimpornya di kepala file Python untuk menggunakan metodenya.

np.where

Itu np.where adalah Numpy Perpustakaan metode Itu mengembalikan indeks elemen dalam array input di mana kondisi yang diberikan terpenuhi. Itu numpy.where () fungsi iterasi di atas array bool, dan untuk setiap BENAR , itu menghasilkan array elemen . Untuk setiap PALSU , itu menghasilkan item yang sesuai dari array y.

Jadi, ia mengembalikan serangkaian elemen dari X di mana kondisinya berada BENAR dan elemen dari Anda di tempat lain. Untuk menemukan indeks di array numpy, gunakan np.where fungsi.

Sintaksis

numpy.where(condition[, x, y]) 

Parameter

kondisi: Ekspresi bersyarat yang mengembalikan array bool yang tidak

X, Y: Array (opsional, mis., Keduanya dilewatkan atau tidak dilewati)

  1. Jika semua argumen -> kondisi, x & y diberikan di numpy.where () itu akan mengembalikan item yang dipilih dari x & y tergantung pada nilai dalam array bool yang dihasilkan oleh kondisi tersebut. Semua 3 array harus dengan ukuran yang sama.
  2. Jika argumen X dan Y tidak dilewati, dan hanya argumen kondisi yang dilewati, maka ia mengembalikan tuple array (satu untuk setiap sumbu) yang berisi indeks item yang sebenarnya dalam array bool numpy yang dikembalikan oleh kondisi tersebut.

Contoh

Lihat kode berikut.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])

result = np.where(arr == 19)

print('Tuple of arrays returned : ', result)
print("Elements with value 19 exists at following indices", result[0], sep='\n') 

Keluaran

python3 app.py
Tuple of arrays returned :  (array([8]),)
Elements with value 19 exists at following indices
[8] 

Temukan indeks nilai dalam array 1d numpy.

Mari kita temukan array numpy elemen dengan nilai 19 terjadi di tempat yang berbeda. Tapi, pertama, mari kita lihat semua indeksnya.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([11, 19, 13, 14, 15, 11, 19, 21, 19, 20, 21])

result = np.where(arr == 19)

print('Tuple of arrays returned : ', result)
print("Elements with value 19 exists at following indices", result[0], sep='\n') 

Keluaran

python3 app.py
Tuple of arrays returned :  (array([1, 6, 8]),)
Elements with value 19 exists at following indices
[1 6 8] 

Itu hasil adalah tuple array (satu untuk setiap sumbu) yang berisi indeks di mana nilai 19 ada dalam array.

Dapatkan indeks pertama elemen dengan nilai 19.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([11, 19, 13, 14, 15, 11, 19, 21, 19, 20, 21])

result = np.where(arr == 19)

print('Tuple of arrays returned: ', result)
print("Elements with value 19 first exists at index:", result[0][0]) 

Keluaran

python3 app.py
Tuple of arrays returned:  (array([1, 6, 8]),)
Elements with value 19 first exists at index: 1 

Python numpy.where (), elemen -elemen dari numpy array ndarray yang memenuhi kondisi dapat diganti atau dilakukan pemrosesan yang ditentukan.

Bagaimana jika elemen tidak ditemukan di array numpy

Jika item yang diberikan tidak ada dalam array numpy, maka array indeks yang dikembalikan akan kosong.

Lihat kode berikut.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([11, 19, 13, 14, 15, 11, 19, 21, 19, 20, 21])

result = np.where(arr == 46)

print('Tuple of arrays returned: ', result)
print("Elements with value 19 first exists at index:", result[0][0]) 

Keluaran

python3 app.py
Tuple of arrays returned:  (array([], dtype=int64),)
Traceback (most recent call last):
  File "app.py", line 9, in 
    print("Elements with value 19 first exists at index:", result[0][0])
IndexError: index 0 is out of bounds for axis 0 with size 0 

Temukan Indeks Nilai dalam Array Numpy 2D dalam Python

Mari kita buat array numpy 2D. Lihat contoh kode berikut.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([[11, 19, 18], [14, 15, 11], [19, 21, 46], [29, 21, 19]])

result = np.where(arr == 19)

print('Tuple of arrays returned: ', result)
print("Elements with value 19 first exists at index:", result[0][0]) 

Keluaran

python3 app.py
Tuple of arrays returned:  (array([0, 2, 3]), array([1, 0, 2]))
Elements with value 19 first exists at index: 0 

Ini mengembalikan tuple array, satu untuk setiap dimensi. Seperti dalam kasus kami, ini adalah array dua dimensi, jadi numpy.where () akan mengembalikan tuple dari dua array.

Panjang kedua array akan sama. Jadi untuk mendapatkan daftar indeks yang tepat, kami dapat zip array ini.

Lihat kode berikut.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([[11, 19, 18], [14, 15, 11], [19, 21, 46], [29, 21, 19]])

result = np.where(arr == 19)

listOfIndices= list(zip(result[0], result[1]))

for indice in listOfIndices:
    print(indice) 

Keluaran

python3 app.py
(0, 1)
(2, 0)
(3, 2) 

Cara Mendapatkan Indeks Elemen Berdasarkan Banyak Kondisi Di Numpy

Kapan juga dapat meneruskan beberapa kondisi ke fungsi numpy.where ().

Misalnya, dapatkan indeks elemen dengan nilai kurang dari 21 dan lebih besar dari 15.

# app.py

import numpy as np

# Create a numpy array from a list of numbers
arr = np.array([11, 19, 18, 14, 15, 11, 19, 21, 46, 29, 21, 19])

result = np.where((arr > 15) & (arr < 21))

print(result) 

Keluaran

python3 app.py
(array([ 1,  2,  6, 11]),) 

Dalam contoh di atas, itu akan mengembalikan nilai elemen, yang kurang dari 21 dan lebih dari 14.

Kesimpulan

Jika Anda ingin menemukan indeks nilai dalam array Python Numpy, maka numpy.where ()

Lihat juga

Insert numpy ()

Numpy delete ()

Numpy append ()

Numpy araange ()

Numpy array ()

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *