0

我尝试计算二维数组 O 中每一列的总和,并将其存储在一维数组 col_sum 中。但是我看到我的数组 O 在更新数组 col_sum 后会自动更新。无法弄清楚为什么。请帮忙。

输出:

数组 O 的第 1 行:在 [ 14 83 236 55 58 9 64] 之前

更新 col_sum [ 20 117 463 126 112 29 133]

数组 O 的第 1 行:在 [ 20 117 463 126 112 29 133] 之后

import numpy as np

O = np.array([[14,83,236,55,58,9,64],[6,34,227,71,54,20,69]])
print('Row 1 of array O: Before', O[0])

row, col = O.shape

col_sum = O[0] # PROBLEM AREA

for i in range(row):
    for j in range (col):
        if i>0:
            col_sum[j] = col_sum[j] + O[i][j] #PROBLEM AREA - Why is array O getting updated?
            
            
print ('Updated col_sum', col_sum)
print ('Row 1 of array O: After', O[0])

4

1 回答 1

0

您需要使用col_sum = np.copy(O[0])以确保更新col_sum不会也反映在O.

有关详细说明,请参阅https://stackoverflow.com/a/19676762/11778344

于 2020-06-30T10:17:30.460 回答