Ich habe ein ndarray 'n_data' von Schwimmern mit Form (N, 3). Ich möchte Änderungen an 'n_data' vornehmen (keine Kopie). Ich habe den folgenden Code Hexe funktioniert, aber es fühlt sich sehr schmutzig:Korrekter Python Weg zu: Arbeit am Original in for Schleife
i = 0
for point in n_data:
point -= center
r = np.linalg.norm(point)
n_data[i] = point * (r ** gamma/r)
i += 1
Ich versuchte np.nditer verwenden, aber für jede Iteration wäre es eine einzige Nummer und keine ndarray mit Form (3,), wie oben zu erhalten .
for point in np.nditer(n_data, op_flags=['readwrite']):
point -= center
r = np.linalg.norm(point)
point = point * (r ** gamma/r)
Vielen Dank im Voraus für alle Hilfe!
'nditer' ist generell besser in' c' Code als in Python. Ich würde 'für i, row in enumerate (arr) verwenden:' wenn ich in Zeilen iterieren müsste und auch einen Index benötigt. – hpaulj