Numune olarak büyük boyutlu 3 boyutlu bir dizim var (boyut 100x100x100 diyelim). Bir çok parçasını (elementlerin yaklaşık% 70'i) birkaç kez yinelemek istiyorum ve aynı büyüklükte bir boole matrisine sahibim ve elemanın işlemi yapıp yapmaması gerektiğini tanımlar.Sayısal dizinin bir kısmı boyunca yineleme nasıl hızlandırılır
Benim geçerli yöntem şeklinin bir dizi "Coords" (N, 3) bir işlem yapmak için ve daha sonra
for i in np.arange(many_iterations):
for j in coords:
large_array[j] = do_something(large_array[tuple(j)])
aslında daha iyi olurdu ki tüm Coords içeren oluşturmak için ilk için tüm diziyi değerlendirmek ve boole dizisini sınamak için döngüde fazladan bir işlem eklemek için (gerçeği değerlendirmenin daha sonra bir defadan ziyade many_itrasyon kez yapıldığı unutulmamalıdır). Benim düşünce bu durumda ödeme kapalı bu son satır bu durumda işe yapılmış olacağını nasıl döngüler
large_array = do_something(large_array if condition True)
için kurtulmak olacağını idi?
'do_something' ifadesine bağlı olarak, 'large_array [boolean_array] = do_something (large_array [boolean_array])' ya da daha kısa bir şey yapabilirsiniz. –
Düşüncenin doğru olduğunu düşünüyorum, tüm dizide işlemi yapmak ve ardından 'nümtop' gibi bir şey kullanmak sizin yararınıza olabilir. –