Mengekstrak Subarray dengan Stride Menggunakan NumPy
Memandangkan tatasusunan NumPy, selalunya perlu membahagikannya kepada subbarray dengan langkah tertentu. Soalan ini meneroka cara untuk mencapai matlamat ini dengan cekap menggunakan penyiaran dan langkah NumPy.
Penyelesaian 1: Penyiaran
Fungsi broadcasting_app menggunakan penyiaran untuk membina subarray yang dikehendaki. Ia mengira bilangan baris berdasarkan saiz tatasusunan, panjang subarray dan langkah. Ia kemudian menggunakan penyiaran untuk mencipta tatasusunan baharu di mana setiap baris mewakili subarray.
Penyelesaian 2: NumPy Strides
Fungsi strided_app menggunakan mekanisme pengendalian langkah yang cekap NumPy. Ia mengira bilangan baris dan langkah seperti sebelumnya. Kemudian, ia memanfaatkan fungsi as_strided untuk mencipta tatasusunan baharu dengan langkah dan bentuk yang diingini.
Penggunaan Contoh
Untuk menggambarkan penyelesaian ini, pertimbangkan kod Python berikut:
import numpy as np a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) L = 5 # Subarray length S = 3 # Stride print(broadcasting_app(a, L, S)) print(strided_app(a, L, S))
Output:
[[ 1 2 3 4 5] [ 4 5 6 7 8] [ 7 8 9 10 11]] [[ 1 2 3 4 5] [ 4 5 6 7 8] [ 7 8 9 10 11]]
Kedua-duanya pendekatan menghasilkan matriks subarray yang diingini dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Subarray dengan Cekap dengan Langkah Tertentu dalam NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!