Scusate se questa è una domanda stupida, ma sono appena iniziato con python/numpy e non sono davvero sicuro dei modi più efficienti per fare le cose. Sto mettendo insieme un simulatore di N-body per alcuni studenti, ma per ora sto calcolando la forza tra le particelle facendo un loop sulle posizioni di quelle particelle che è prevedibilmente lente come la melassa. Fondamentalmente, dato un vettore x[i]
, desidero calcolare:eseguendo l'aggiunta esterna con numpy
n[i] = sum from j = 0 to n-1, j != i of (x[i]-x[j])^-2,
utilizzando funzioni NumPy anziché loop. Se v'è un modo per eseguire esterno oltre/moltiplicazione:
m[i,j] = x[i]-x[j],
m[i,j] = x[i]*x[j],
ho potuto usarlo per fare il calcolo.
grazie per le informazioni! –
Questa è una grande caratteristica! Per chi è interessato c'è ulteriore lettura sulla [documentazione ufunc] (https://docs.scipy.org/doc/numpy-1.13.0/reference/ufuncs.html#methods). – Annan