ValueError:操作数不能与形状(3,)(2,)一起广播

问题描述 投票:0回答:1

我有以下情况:

  • 例如,我有一个数字列表:
day_list = [
  [317, 331, 344],
  [305, 326, 340],
  [317],
  [290, 323],
  [311, 325, 345],
  [289, 303, 323],
  [274, 281, 294, 325]
  ...
]
  • 我想从每个内部列表的下一个元素中减去前一个元素,以便将结果附加到“结果”列表中。示例:

第一列表: [317,331,344]

331-317 = 14344-331 = 13

结果列表: [14,13]

我的代码是:

result = []
sub_result = []
for index, i in enumerate(day_list):
  if len(i) > 1:
    result = []
    for j in range(len(i)-1):
        subtract = np.subtract(np.array(day_list[index][j+1]), np.array(day_list[index][j]))
        result.append(subtract)
    sub_result.append(result)
  else:
    sub_result.append(0)

我收到以下错误:

[ValueError:操作数不能与形状(3,)(2,)一起广播

我看到这与更改数组位置(j+1)的代码部分有关。而且我不知道如何修复代码并获得正确的结果。

我已经读过很多类似的问题,但是我找不到解决方案。

您能帮忙吗?

Tks

===================================>

添加更多详细信息:

我正在从以下数据框中创建列表:


        key day_list
    0   1078|11498  [317, 331, 344]
    1   1078|11749  [305, 326, 340]
    2   1078|11778  [317]
    3   1078|13974  [290, 323]
    4   1078|15866  [311, 325, 345]
    ... ... ...
    25337   96|426860   [302, 326]
    25338   96|443060   [310]
    25339   96|445134   [301, 303, 310]
    25340   96|445237   [301, 309, 310, 324]
    25341   96|447416   [301, 310]
    25342 rows × 2 columns

    def load_data(data):
        df = pd.DataFrame(data)
        day_list = []
        for i in range(len(df)):
            day_list.append(df.day_list.loc[i])
        return day_list

    day_list = load_data(df_dayofyear)

[我有以下情况:我有一个数字列表,例如:day_list = [[317,331,344],[305、326、340],[317],[290、323],[ 311,325,345],[289,303,323],[274,...

python numpy numpy-broadcasting
1个回答
0
投票

也许是我纠正的代码中的缩进错误,我现在尝试了此代码,但未收到任何错误:

© www.soinside.com 2019 - 2024. All rights reserved.