도움을 주신 모든 분들께 감사드립니다. 무엇이 가장 간결하게 내 문제를 설명하는 것 같습니다 우편 번호은 목록이 아닌 튜플의 반복자를 반환하므로 불변입니다. 아래의 작업 솔루션과 그 아래의 원래 질문 코드를 볼 수 있습니다.for 루프에서 zip을 사용하여 수치스러운 배열에 할당
솔루션 :
이f = np.array([1,2,3,4,5,6,7,8,9,10])
trials = [[0,1,2], [5,6,7], [8,9]]
trial_averages = []
for i in trials:
a = 0
for j in i:
a += f[j]
a /= len(i)
trial_averages.append(a)
trial_averages = np.array(trial_averages)
print('trials = {0}'.format(trials))
print('averages = {0}'.format(trial_averages))
trials = [[0, 1, 2], [5, 6, 7], [8, 9]]
averages = [ 2. 7. 9.5]
질문 : 두 개의 배열의 우편 및 수정 된 배열 for 루프에서 NumPy와 배열의 요소를 수정하려고
점점되지 업데이트되었습니다. 내가 뭘 놓치고 있니?
원본 예제가 정확한 문제를 설명하지 못했기 때문에 새로운 예제를 만들었습니다.
새로운 예제
f = np.array([1,2,3,4,5,6,7,8,9,10])
trials = [[0,1,2], [5,6,7], [8,9]]
trial_averages = np.zeros(len(trials))
for i, j in zip(trials, trial_averages):
for k in i:
j += f[k]
j /= len(i)
print('trials = {0}'.format(trials))
print('averages = {0}'.format(trial_averages))
print('{0}, {1}'.format(i, j))
출력 :
이때trials = [[0, 1, 2], [5, 6, 7], [8, 9]]
averages = [ 0. 0. 0. 0.]
[8, 9], 9.5
가 J는 I 번째 업데이트 될 것으로 예상 trial_averages의 요소에 대한 포인터이며 for 루프를 f의 값으로 합한 값이 이고 인 div 다음에 div로 표시됩니다. 목록의 길이에 따라 시험에서으로 각 시험에서 f의 값의 평균을 계산. 참조
오래 예 :
동작 예 :
A = np.array([1, 2, 3, 4], dtype=float)
B = np.zeros(len(A))
for i, j in zip(A, B):
j = i
print('A = {0}'.format(A))
print('B = {0}'.format(B))
print('{0}, {1}'.format(i, j))
출력 :
A = [ 1. 2. 3. 4.]
B = [ 0. 0. 0. 0.]
4.0, 4.0
가 지퍼 입력 배열의 요소 포인터를 통과하지? 과제 j = i는 B = [1. 2. 3. 4.]?
도움 주셔서 감사합니다.
_Doesn't 지퍼가 입력 배열의 요소에 대한 포인터를 전달을 _ 그것이 작동하지 않을 않았더라도 때문에'J = 나는'j '라는 이름을'i '라는 이름에 묶여있는 것 이외의 것을 아무것도하지 않는다. –