Analisis terperinci Python bagi aplikasi kod np.where().

WBOY
Lepaskan: 2022-08-24 09:11:30
ke hadapan
2330 orang telah melayarinya

[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([[&#39;chosen&#39;, &#39;chosen&#39;], [&#39;chosen&#39;, &#39;chosen&#39;]], dtype=&#39;<U10&#39;)
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!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan