Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Operasi Logik ATAU/AND pada Tatasusunan NumPy Berbilang?
Dalam Numpy, logical_or hanya boleh membandingkan dua tatasusunan. Ini menimbulkan persoalan: bagaimana untuk mencari kesatuan lebih daripada dua tatasusunan? Soalan yang sama digunakan untuk logik_dan dan mendapatkan persilangan berbilang tatasusunan.
Penghadan Fungsi Logik Numpy
Numpy secara eksplisit mengehadkan logik_atau kepada dua argumen: x1 dan x2.
Merangkai Logik Operasi
Berbilang panggilan ke logik_atau boleh dirantai:
x = np.array([True, True, False, False]) y = np.array([True, False, True, False]) z = np.array([False, False, False, False]) result = np.logical_or(np.logical_or(x, y), z)
hasil: [ Betul, Betul, Betul, Salah]
Menggeneralisasikan Rantaian Menggunakan Numpy's Reduce
Untuk menyamaratakan perkara ini chaining, NumPy menyediakan fungsi pengurangan:
result = np.logical_or.reduce((x, y, z))
hasil: [ True, True, True, False]
Pendekatan ini juga berfungsi dengan tatasusunan berbilang dimensi:
xyz = np.array((x, y, z)) result = np.logical_or.reduce(xyz)
hasil: [ Benar, Benar, Benar, False]
Python's Reduce
Python's functools.reduce juga boleh digunakan:
import functools result = functools.reduce(np.logical_or, (x, y, z))
hasil: [ True, True, True, False ]
Numpy's Any Fungsi
Mana-mana fungsi Numpy juga boleh digunakan, tetapi memerlukan hujah paksi eksplisit:
result = np.any((x, y, z), axis=0)
hasil: [ True, True, True, False]
Logik DAN (logik_dan) dan Lain-lain Operasi
Kaedah serupa digunakan pada operasi logik lain, termasuk logik_dan. Sebagai contoh, logical_xor tidak mempunyai persamaan dengan semua atau mana-mana.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Operasi Logik ATAU/AND pada Tatasusunan NumPy Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!