Numpy: cara mendapatkan indeks yang nilainya benar


Anda dapat menggunakan metode berikut untuk mendapatkan indeks yang kondisinya benar di NumPy:

Metode 1: Dapatkan indeks dengan kondisi benar dalam array NumPy

 #get indices of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

Metode 2: Dapatkan indeks yang kondisinya benar dalam matriks NumPy

 #get indices of values greater than 10
n.p. transpose ((my_matrix>10) .nonzero ())

Metode 3: Dapatkan indeks yang kondisinya benar di setiap baris matriks NumPy

 #get indices of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 ,axis= 1 )). nonzero ()

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.

Contoh 1: Dapatkan indeks yang kondisinya benar dalam array NumPy

Kode berikut menunjukkan cara mendapatkan semua indeks array NumPy yang nilainya lebih besar dari 10:

 import numpy as np

#create NumPy array
my_array = np. array ([2, 2, 4, 5, 7, 9, 11, 12, 3, 19])

#get index of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

(array([6, 7, 9], dtype=int32),)

Dari hasilnya kita dapat melihat bahwa nilai pada posisi indeks 6 , 7 dan 9 dari array NumPy asli memiliki nilai lebih besar dari 10.

Contoh 2: Dapatkan indeks yang kondisinya benar dalam matriks NumPy

Kode berikut menunjukkan cara mendapatkan semua indeks matriks NumPy yang nilainya lebih besar dari 10:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of values greater than 10
n.p. transpose ((my_matrix> 10 ) .nonzero ())

array([[0, 3],
       [3, 2],
       [3, 3]], dtype=int32)

Dari hasilnya terlihat bahwa nilai pada posisi indeks matriks berikut memiliki nilai lebih besar dari 10:

  • [0, 3]
  • [3, 2]
  • [3, 3]

Contoh 3: Dapatkan indeks yang kondisinya benar di setiap baris matriks NumPy

Kode berikut menunjukkan cara mendapatkan semua indeks baris dalam matriks NumPy yang nilainya lebih besar dari 10 pada elemen mana pun dalam baris:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 , axis= 1 )). nonzero ()

(array([0, 3], dtype=int32),)

Dari hasilnya kita dapat melihat bahwa baris 0 dan 3 memiliki setidaknya satu nilai lebih besar dari 10.

Catatan : Untuk mendapatkan indeks yang kondisinya benar dalam kolom, gunakan axis=0 sebagai gantinya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di NumPy:

Cara mengisi array NumPy dengan nilai
Cara menghapus elemen tertentu dari array NumPy
Cara mengganti elemen dalam array NumPy
Cara mendapatkan baris tertentu dari array NumPy

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *