Cara menggunakan fungsi python NumPy where() dengan berbagai kondisi

Pustaka NumPy memiliki banyak fungsi untuk membuat array dengan python. fungsi where() adalah salah satunya untuk membuat array dari array NumPy lain berdasarkan satu atau lebih kondisi. Beberapa operasi dapat dilakukan pada saat pembuatan array berdasarkan kondisi dengan menggunakan fungsi ini. Hal ini dapat digunakan tanpa ekspresi kondisional juga. Bagaimana fungsi ini dapat digunakan dengan beberapa kondisi di python ditunjukkan dalam tutorial ini.

Sintaksis:

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

di mana fungsi () dapat mengambil dua argumen. Argumen pertama adalah wajib, dan argumen kedua adalah opsional. Jika nilai argumen pertama (condition) benar, maka output akan berisi elemen array dari array, x jika tidak dari array, y. Fungsi ini akan mengembalikan nilai indeks dari array input jika tidak ada argumen opsional yang digunakan.

Penggunaan fungsi where():

Berbagai jenis operator Boolean dapat digunakan untuk mendefinisikan kondisi fungsi ini. Penggunaan fungsi where a () dengan beberapa kondisi ditampilkan di bagian tutorial ini.

Contoh -1: Penggunaan beberapa kondisi dengan logika OR

Contoh berikut menunjukkan useran fungsi where() dengan dan tanpa argumen opsional. Di sini, logika OR telah digunakan untuk mendefinisikan kondisi. Fungsi where() pertama telah diterapkan dalam larik satu dimensi yang akan mengembalikan larik indeks dari larik input tempat kondisi akan dikembalikanTrue. Fungsi where() kedua yang telah diterapkan dalam dua larik satu dimensi akan mengambil nilai dari larik pertama ketika kondisinya akan mengembalikan True. Jika tidak, itu akan mengambil nilai dari array kedua.

# Import NumPy library

import numpy as np

# Create an array using the list

np_array1 = np.array([23, 11, 45, 43, 60, 18,  33, 71, 52, 38])
print("values of the input array :n", np_array1)


# Create another array based on the multiple conditions and one array
new_array1 = np.where((np_array1  50))

# Print the new array
print("filtered values of the array :n", new_array1)

# Create an array using range values
np_array2 = np.arange(40, 50)

# Create another array based on the multiple conditions and two arrays
new_array2 = np.where((np_array1  60), np_array1, np_array2)

# Print the new array
print("filtered values of the array :n", new_array2)

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Di sini, kondisinya telah kembaliTrueuntuk nilai 23,11,18,33, dan 38 dari larik pertama. Kondisi telah kembaliFalse untuk nilai 45, 43, 60, 71, dan 52. Jadi, 42, 43, 44, dan 48 telah ditambahkan dari larik kedua untuk nilai 45, 43, 60, dan 52. Di sini, 71 di luar jangkauan.

Contoh -2: Penggunaan beberapa kondisi dengan logika AND

Contoh berikut menunjukkan bagaimana fungsi () dapat digunakan dengan beberapa kondisi yang ditentukan oleh logika dan diterapkan dalam dua larik satu dimensi. Di sini, dua array NumPy satu dimensi telah dibuat dengan menggunakan fungsi Rand(). Array ini telah digunakan dalam fungsi where() dengan beberapa kondisi untuk membuat array baru berdasarkan kondisi. Kondisi akan kembaliTrue ketika nilai larik pertama kurang dari 40 dan nilai larik kedua lebih besar dari 60. Larik baru telah dicetak kemudian.

# Import NumPy library

import numpy as np

# Create two arrays of random values
np_array1 = np.random.rand(10)*100
np_array2 = np.random.rand(10)*100


# Print the array values
print("nvalues of the first array :n", np_array1)
print("nvalues of the second array :n", np_array2)


# Create a new array based on the conditions
new_array = np.where((np_array1  60), np_array1, np_array2)

# Print the new array
print("nfiltered values of both arrays :n", new_array)

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Kondisi telah kembaliFalseuntuk semua elemen. Jadi, array yang dikembalikan hanya berisi nilai dari array kedua.

Contoh-3: Penggunaan beberapa kondisi dalam array multi-dimensi

Contoh berikut menunjukkan bagaimana di mana fungsi () dapat digunakan dengan beberapa kondisi yang ditentukan oleh logika ANDyang akan diterapkan dalam dua array multi-dimensi. Di sini, dua array multi-dimensi telah dibuat dengan menggunakan daftar. Selanjutnya, fungsi-fungsi ini telah diterapkan di mana () fungsi untuk membuat array baru berdasarkan kondisi. Kondisi yang digunakan dalam fungsi akan kembaliTruedimana nilai larik pertama genap dan nilai larik kedua ganjil; jika tidak, kondisinya akan kembaliFalse.

# Import NumPy library

import numpy as np

# Create two multidimensional arrays of integer values
np_array1 = np.array([[5, 12, 21, 6, 11],  [6, 10, 15, 31, 8]])
np_array2 = np.array([[43, 19, 7, 34, 9],  [99, 22, 41, 5, 12]])

# Print the array values
print("nvalues of the first array :n", np_array1)
print("nvalues of the second array :n", np_array2)

# Create a new array from two arrays based on the conditions
new_array = np.where(((np_array1 % 2 == 0) & (np_array2 % 2 == 1)), np_array1, np_array2)

# Print the new array
print("nfiltered values of both arrays :n", new_array)

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Pada output, 43, 12, 7, 34, 9, 22, 41, 5, dan 12 telah ditambahkan pada larik baru dari larik kedua karena kondisinya adalahFalseuntuk nilai-nilai ini. 12 nilai pertama dalam larik baru telah ditambahkan dari larik pertama karena kondisinya adalahTrue untuk nilai ini saja.

Kesimpulan:

di mana fungsi () dari pustaka NumPy berguna untuk memfilter nilai dari dua larik. Membuat array baru dengan memfilter data dari dua array berdasarkan beberapa kondisi yang ditentukan oleh logika OR dan logika AND telah dijelaskan dalam tutorial ini. Saya berharap para pembaca dapat menggunakan fungsi ini dalam skrip mereka dengan benar setelah mempraktikkan contoh-contoh tutorial ini.

Related Posts