Python中2个以上概率分布的卷积

Python中2个以上概率分布的卷积,python,numpy,statistics,convolution,probability-density,Python,Numpy,Statistics,Convolution,Probability Density,numpy.convolve(a,v,mode='full')只允许两个输入: a(N,)array\u类似于第一个一维输入数组 v(M,)array\u类似于第二个一维输入数组 如何在Python中计算2个以上概率分布的卷积 例子 下面的代码生成3个随机变量。我想对所有这些进行卷积,并提取用于形成卷积的权重: import numpy as np from numpy.random import randn n=100 x=randn(n) y=randn(n)+0.2 z=randn(

numpy.convolve(a,v,mode='full')
只允许两个输入:

  • a(N,)
    array\u类似于第一个一维输入数组
  • v(M,)
    array\u类似于第二个一维输入数组
如何在Python中计算2个以上概率分布的卷积

例子 下面的代码生成3个随机变量。我想对所有这些进行卷积,并提取用于形成卷积的权重:

import numpy as np
from numpy.random import randn

n=100
x=randn(n)
y=randn(n)+0.2
z=randn(n)*0.3
print(np.convolve(x,y))

但是,
numpy.convolve
仅接受两个输入,即使在双输入的情况下,如何提取用于形成卷积的权重?

只需使用
Functiontools。减少
将卷积链接在一起(因为卷积是关联的):


现在使用
mode='full'
时,您可能需要再次将其缩减为100个值,或者您想对其执行的任何操作。

您能否指定2个以上概率分布的含义?我不熟悉它。如果我们用实值数据集的和来规范化它,那么数据集中的每个结果/值的频率就称为概率,每个都是非负的,和为1。概率分布(不管是pdf、pmf还是cdf)是一个数据集,其中填充了与原始数据集的样本相对应的这些概率。很可能我们采用的是离散形式的分布,而不是连续的参数分布,但我们真正需要认识的是
numpy的输入。卷积函数很可能是由卷积导出的真实数据的pmf是关联的,只需使用
functools.reduce(np.卷积,*输入)
在卷积之后,我如何提取应用于每个分量分布的权重?您需要对您想要的内容进行详细说明,现在您的输入和预期输出不清楚。谢谢,如何提取用于形成卷积的各个分量的权重?我知道这些词是什么ean,但我不理解它们的顺序。如果您对某个预期输出有问题规范,请将其包含在您的问题中。给定3个变量,卷积为每个变量分配3个不同的权重,以形成所有3个变量的整体卷积。目前,函数或代码没有输出设置包含3种不同权重的权重向量。我如何使
convalve
函数输出权重向量?权重向量是我的预期输出,但它不存在。我不知道如何解释这一点。根据您使用的行话,我不明白您想要什么。我们不是统计学家,我们只能在以下方面提供帮助基于代码的实现。您的问题中没有定义“权重向量”的代码因此,除非你运气好,找到一个人知道你在上下文中的意思,否则你不可能得到有用的答案。3个随机变量:x1,x2,x3。对每个变量,卷积应用一个分数权重:w1,w2,w3。因此,卷积是w1*x1+w2*x2+w3*x3。权重,w1,w2,w3,我如何提取权重从
卷积
from functools import reduce

def multi_conv(*arrs, conv = lambda x, y: np.convolve(x, y, mode='full')):
    return reduce(conv, arrs)

multi_conv(x, y, z)