나는 모양 (N, 3)을 가진 float의 ndarray 'n_data'를가집니다. 반복하고 'n_data'(사본이 아님)을 변경하려고합니다. 다음 코드 마녀가 작동해야하지만 아주 더러운 느낌 :올바른 파이썬 방법 : for 루프에서 원래 작업
i = 0
for point in n_data:
point -= center
r = np.linalg.norm(point)
n_data[i] = point * (r ** gamma/r)
i += 1
I 위와 np.nditer를 사용하지만, 각 반복 것이 하나의 숫자와 모양 (3)와이 아닌 ndarray을 얻을 것 시도 .
for point in np.nditer(n_data, op_flags=['readwrite']):
point -= center
r = np.linalg.norm(point)
point = point * (r ** gamma/r)
미리 도움 주셔서 감사합니다.
'nditer'는 일반적으로 파이썬보다'c' 코드에서 더 좋습니다. 행을 반복해야하고 인덱스가 필요한 경우'for i, 행을 열거 (arr) : '라고 사용합니다. – hpaulj