{Numpy}将两个大小不同的列表相乘

时间:2018-10-16 14:42:26

标签: python numpy

我搜索一个解决方案,将每个序列的列表乘以一个小列表,就像这样:

X=[a,b,c]
Y=[d,e]

我想要这个结果(仅当i-1存在时,将i-1和X的i乘以Y)。

Z=[e*a,d*a+e*b,d*b+e*c]

我有一些主意,但是我正在搜索某些东西,而没有if / else或在X中加0 ...

另一个问题是:什么是最好的?使用列表或数组? (或其他?)

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您想要的被称为“相关性” 。一种简单的方法是使用numpy.correlate

与您的示例一样,端点总是很棘手,并且具有相关性,numpy.correlate有几种处理端点的选项。

以下是文档中的一些示例:

>>> np.correlate([1, 2, 3], [0, 1, 0.5])
array([ 3.5])

>>> np.correlate([1, 2, 3], [0, 1, 0.5], "same")
array([ 2. ,  3.5,  3. ])

>>> np.correlate([1, 2, 3], [0, 1, 0.5], "full")
array([ 0.5,  2. ,  3.5,  3. ,  0. ])