按分段较小数组减去较大数组

时间:2018-11-28 20:37:51

标签: arrays python-3.x numpy

Array_B有47个元素,Array_A有10个元素。我想按元素和分段减去较大的数组。

也就是说,将Array_B分成4个段,每段10个,并从Array_A中逐元素减去。我该如何处理Array_B的其余7个元素?

编辑:为清楚起见,改写

1 个答案:

答案 0 :(得分:2)

您的描述有点模糊,但是我猜想np.resize可以解决问题:

In [104]: A = np.arange(1,5)
In [105]: B = np.arange(10,5*4.7)
In [106]: B
Out[106]: 
array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22.,
       23.])
In [107]: np.resize(A,B.shape)
Out[107]: array([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2])
In [108]: B-np.resize(A,B.shape)
Out[108]: 
array([ 9.,  9.,  9.,  9., 13., 13., 13., 13., 17., 17., 17., 17., 21.,
       21.])

这利用np.resize填充空白的优势。我通常不使用resize,但是在这种情况下,这可能是对的。