【问题标题】:Subtraction of different sizes numpy arrays不同大小的numpy数组的减法
【发布时间】:2020-03-31 08:51:10
【问题描述】:

我已经问过一个先前的问题,但我认为我的例子并不清楚。我仍在尝试从 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 数组有点慢,但我不知道如何使它工作?有人可以帮帮我吗?

【问题讨论】:

  • 在期望的输出中,最后一行是如何计算的?是d[1] 的最后一行减去d[0] 的最后一行吗?
  • 我猜 OP 想要一种向量的隐式扩展 d[0] where d[0][2] = [0, 0 ,0]
  • 是的,@obchardon 是正确的。我想要 d[0][2] = [0,0,0] 那么我不需要删除数据!

标签: python arrays numpy


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多