Ben tam olarak ne istediğimi yapan bir kod parçası var (bu bir kriging yönteminin bir parçasıdır). Ama sorun şu ki, çok yavaş ilerliyor, ve for-loop'u aşağıya itmek için herhangi bir seçenek olup olmadığını bilmek isterim? Eğer numpy.sum'u dışarı çıkarırsam ve oradaki eksen argümanını kullanırsam, biraz hızlanır, ama görünüşe göre bu darboğaz değildir. i forloop aşağı itebilir nasıl bir fikir bunu hızlandırmak için numpy için mi yoksa başka yolları da hızlandırmak için?)Geri döngü için aşağı itmek nasıl
# n = 2116
print GRZVV.shape # (16309, 2116)
print GinvVV.shape # (2117, 2117)
VVg = numpy.empty((GRZVV.shape[0]))
for k in xrange(GRZVV.shape[0]):
GRVV = numpy.empty((n+1, 1))
GRVV[n, 0] = 1
GRVV[:n, 0] = GRZVV[k, :]
EVV = numpy.array(GinvVV * GRVV) # GinvVV is numpy.matrix
VVg[k] = numpy.sum(EVV[:n, 0] * VV)
ben bazı şeyler
temizlemek için ndarrays n matris boyutları yayınlanmıştırdüzenleme: VV şekli temelde sonra vektör tüm unsurları ekleyerek, GRZVV
her satırı alarak GinvVV
ile çarpılarak, sonunda 1 sona eklendiğini 2116
Ne şekildir ' VV'? –
Eğer VV.shape == (16309,) 'ise, '(n,)' şeklindeki EVV [: n, 0] 'ile bunu nasıl ekleyebilirsin? – askewchan
Belki de döngünüzün son satırı, @ Jaime'nin cevabının varsaydığı gibi görünen EVV [: n, 0] * VV [k] 'olmalıdır. – askewchan