Artikel ini membawakan anda pengetahuan yang berkaitan tentang Python3 Terdapat fungsi yang sangat ajaib dalam fungsi numpy yang dipanggil np.where() Artikel berikut terutamanya memperkenalkan kepada anda tentang Python Penjelasan terperinci tentang np.where () dan maklumat yang berkaitan tentang aplikasi kod diperkenalkan secara terperinci melalui contoh kod saya harap ia akan membantu semua orang.
[Cadangan berkaitan: Tutorial video Python3]
np.where mempunyai dua kegunaan:
Tidak. Sejenis np.where(condition, x, y)
, iaitu syarat ialah syarat Apabila syarat dipenuhi, keluarannya adalah Mudah difahami, seperti yang ditunjukkan di bawah:
a = np.arange(10)
//array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(np.where(a > 5, 1, -1))
//array([-1, -1, -1, -1, -1, -1, 1, 1, 1, 1])
Salin selepas log masuk
Ia boleh difahami dengan cara ini. Nilai bool dalam baris pertama mewakili syarat, yang bermaksud sama ada untuk mengambil nilai Pertama, lihat [Benar, Salah], yang merupakan nilai Pertama yang Benar bermaksud bahawa baris pertama mengambil 1 dalam [1, 2] dalam baris pertama nilai, bukannya 9 di bawah Nilai Palsu bermakna 2 dalam baris pertama [1, 2] tidak diambil, tetapi baris kedua [ 9, 8] dalam 8. Berikut adalah sama. sebagai [3, 4].
Untuk memudahkan pemahaman, berikan contoh lain:
np.where([[True,False], [True,True]],
[[1,2], [3,4]],
[[9,8], [7,6]])
// 输出 array([[1, 8], [3, 4]])
Salin selepas log masuk
Jika a>5Benar dalam baris pertama, ambil baris pertama Nilai pertama a<5 mengambil yang kedua nilai baris kedua. Perkara yang sama berlaku di bawah.
a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
[["chosen","not chosen"], ["chosen","not chosen"]],
[["not chosen","chosen"], ["not chosen","chosen"]])
//array([['chosen', 'chosen'], ['chosen', 'chosen']], dtype='<U10')
Salin selepas log masuk
Setelah memahami kaedah pertama, mari kita lihat kaedah kedua np.where:
Iaitu, np.where(condition), hanya keadaan (keadaan), tanpa x dan y, kemudian keluarkan koordinat unsur yang memenuhi syarat (iaitu, bukan 0) (bersamaan dengan numpy.nonzero). Koordinat di sini diberikan dalam bentuk tuple Biasanya, tuple keluaran mengandungi beberapa tatasusunan, sepadan dengan koordinat setiap dimensi elemen yang memenuhi syarat.
Beri saya contoh kod yang saya temui:
>>> a = np.array([2,4,6,8,10])
>>> np.where(a > 5)
//(array([2, 3, 4]),) 返回索引值
>>> a[np.where(a > 5)]
//array([ 6, 8, 10]) 返回元素值,即a[索引]
Salin selepas log masuk
Dua komponen tatasusunan yang dikembalikan menunjukkan baris mana dan nilai mana 1, jadi hasilnya Tatasusunan pertama dalam mewakili indeks baris, dan tatasusunan tatasusunan kedua mewakili indeks lajur, iaitu indeks perak pecah 1.
a = array([[0., 1.],
[0., 1.],
[0., 1.],
[0., 1.],
[0., 1.],
[0., 1.],
[0., 1.],
[0., 1.],
[1., 0.],
[0., 1.],
[0., 1.],
[0., 1.],
[1., 0.],
[1., 0.],
[0., 1.],
[0., 1.],
[1., 0.],
[0., 1.],
[1., 0.],
[0., 1.]])
np.where(a == 1)
//(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
// 17, 18, 19], dtype=int64),
// array([1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1],
// dtype=int64))
Salin selepas log masuk
Lampiran: np.where() penggunaan berbilang syarat
1 .np. where(condition,x,y) Apabila terdapat tiga parameter di mana, parameter pertama mewakili keadaan Apabila keadaan adalah benar, kaedah where mengembalikan x Apabila keadaan tidak benar, di mana mengembalikan y
2. np.where(condition) Apabila hanya terdapat satu parameter di mana, parameter itu mewakili keadaan Apabila keadaan adalah benar, di mana mengembalikan koordinat setiap elemen yang memenuhi syarat, dalam bentuk tuple <🎜. >
3 Apabila terdapat pelbagai syarat, & bermakna DAN, |. Contohnya, a = np.di mana((0Perhatikan bahawa x, y mesti mengekalkan saiz yang sama dengan a.
Contohnya:
Keputusan: import numpy as np
data = np.array([[0, 2, 0],
[3, 1, 2],
[0, 4, 0]])
new_data = np.where((data>= 0) & (data<=2), np.ones_like(data), np.zeros_like(data))
print(new_data)
Salin selepas log masuk
]
Boleh dilihat selagi setiap elemen dalam data memenuhi data>=0 dan data<=2, jika ia berpuas hati, nilai koordinat np.ones_like(data) yang sepadan akan dikembalikan
, jika tidak berpuas hati, nilai koordinat yang sepadan daripada np.zeros_like(data)
dikembalikan
. Sudah tentu, x dan y boleh ditukar kepada nilai lain, asalkan saiznya sama dengan syarat.
[Cadangan berkaitan: Tutorial video Python3]
Atas ialah kandungan terperinci Analisis terperinci Python bagi aplikasi kod np.where().. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!