'da aynı dizi dizileri atama Python'da bir dizinin tekrarlayan indekslerini atamak için hızlı bir yol (döngü olmadan) bulmak istiyorum. Bu kullanılarak arzu edilen sonuçtur döngü için: I endekslerine a
için x
eklemek deneyinPython/Numpy
import numpy as np
a=np.arange(9, dtype=np.float64).reshape((3,3))
# The array indices: [2,3,4] are identical.
Px = np.uint64(np.array([0,1,1,1,2]))
Py = np.uint64(np.array([0,0,0,0,0]))
# The array to be added at the array indices (may also contain random numbers).
x = np.array([.1,.1,.1,.1,.1])
for m in np.arange(len(x)):
a[Px[m]][Py[m]] += x
print a
%[[ 0.1 1. 2.]
%[ 3.3 4. 5.]
%[ 6.1 7. 8.]]
Px,Py
Açıkçası aynı sonucu elde yok (3.3 ve 3.1):
a[Px,Py] += x
print a
%[[ 0.1 1. 2.]
%[ 3.1 4. 5.]
%[ 6.1 7. 8.]]
Bunu numpy ile yapmanın bir yolu var mı? Teşekkürler.
Birincisi, grup olur değerleri birlikte, sen küpe (Px, Py) bir listesi var ki. Bu listeyi sıralayın, olayları sayın, bu sayıyla x'i çarpın ve diziye ekleyin. Ama bir şekilde uyuşmuş çift entrikayı atlıyor gibi görünüyor .... garip. – Dschoni