首页 > 解决方案 > 不同大小的numpy数组的减法

问题描述

我已经问过一个先前的问题,但我认为我的例子并不清楚。我仍在尝试从 numpy 数组列表中减去两个不同大小的 numpy 数组。例如:

####Data####
### For same size numpy arrays the subtraction works fine!!!!###
easy_data= [[1,2,3],[2,2,2]],[[1,2,3],[1,2,5]]
d = [np.array(i) for i in easy_data] # List of numpy arrays
res = d[1] - d[0] 
>> array([[ 0,  0,  0],
          [-1,  0,  3]])

##### Current Issue ####
data = [[1,2,3],[2,2,2]],[[1,2,3],[1,2,5],[1,1,1]]
d = [np.array(i) for i in data]
res = d[1] - d[0] #### As the sizes are different I can't subtract them ###

期望的输出

array([[ 0,  0,  0],
       [-1,  0,  3],[1,1,1])

我在如何使用 numpy 数组方面有点慢,但我不知道如何使它工作?有谁能够帮我?

标签: pythonarraysnumpy

解决方案


在切片上操作是最简单的。如果您不想擦除原始数组,请使用副本:

>>> res=d[1].copy()
>>> res[:d[0].shape[0]]-=d[0]
>>> res
array([[ 0,  0,  0],
       [-1,  0,  3],
       [ 1,  1,  1]])

推荐阅读