Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中创建并绘制一个数组作为另一个数组中值的函数_Python_Arrays_Function_Plot_Statistics - Fatal编程技术网

在Python中创建并绘制一个数组作为另一个数组中值的函数

在Python中创建并绘制一个数组作为另一个数组中值的函数,python,arrays,function,plot,statistics,Python,Arrays,Function,Plot,Statistics,我是一个编程高手,几周来我一直在更深入地使用Python,但是,我目前需要它来用于统计中的一个应用程序,我正在尝试执行以下操作: 创建一个从1到Q=aq的整数数组N(因此N=[1,2,…,Q-1,Q]),并使用该数组创建和绘制一个数组,其中包含对二项式系数求和的函数的值。A和q是整数常量(N>q在其中故意作为真/假语句)。我目前拥有以下代码: #Constants {A,Q,S,sigma} are set q=Q/A n = np.linspace(1,Q,Q,dtype=int) #vari

我是一个编程高手,几周来我一直在更深入地使用Python,但是,我目前需要它来用于统计中的一个应用程序,我正在尝试执行以下操作:

创建一个从1到Q=aq的整数数组N(因此N=[1,2,…,Q-1,Q]),并使用该数组创建和绘制一个数组,其中包含对二项式系数求和的函数的值。A和q是整数常量(N>q在其中故意作为真/假语句)。我目前拥有以下代码:

#Constants {A,Q,S,sigma} are set
q=Q/A
n = np.linspace(1,Q,Q,dtype=int) #variable array
Sum = np.zeros((1,Q)) 
Iteration = np.zeros((1,Q))

alpha = 0
while alpha < A:
    alpha=alpha+1

    Iteration = sigma^alpha * (comb(n-1,alpha-1) -(n>q)*alpha*comb( max(0,n-q-1), alpha-1) )     
    Sum = Sum + Iteration
    
#设置常数{A,Q,S,sigma}
q=q/A
n=np.linspace(1,Q,Q,dtype=int)#变量数组
总和=np.零((1,Q))
迭代=np.零((1,Q))
α=0
αq)*alpha*梳(最大值(0,n-q-1,alpha-1))
求和=求和+迭代
这在“Iteration=…”行中返回一个typeError“只能将整数标量数组转换为标量索引”(可能在下一行中也会返回),我无法找出问题的确切原因以及如何解决此问题

还有,;我可能是在以一种复杂的方式进行求和;如果在python中有更好的方法来总结这一点,那么也欢迎为此提供帮助


提前感谢您的帮助

问题来自以下几行:

Iteration = sigma^alpha * (comb(n-1,alpha-1) -(n>q)*alpha*comb( max(0,n-q-1), alpha-1) )
由于comb的参数必须是两个非负整数,请参见,当您传入n(n是一个数组)以comb时,它将返回您提到的TypeError

您是否可以将while循环包装起来,使其成为一个函数?然后您可以迭代它并将结果附加到列表中

def this_fun(n):
Sum = 0
Q = 1000
A = 100
sigma = 1
q = int(Q / A)
alpha = 0
while alpha < A:
    alpha = alpha+1
    Iteration = sigma^alpha * (comb(n-1,alpha-1) -(n>q)*alpha*comb( max(0,n-q-1), alpha-1) )
    Sum += Iteration
return Sum

P_N=[]
N = 100
for i in range(1,N):
    P_N.append(this_fun(i))
def this_乐趣(n):
总和=0
Q=1000
A=100
西格玛=1
q=int(q/A)
α=0
αq)*alpha*梳(最大值(0,n-q-1,alpha-1))
和+=迭代
回报金额
P_N=[]
N=100
对于范围(1,N)内的i:
P_N.追加(这很有趣(i))
您必须仔细检查迭代行上的逻辑,以确保您实现了数学通知的目的,并为Q、A和N输入了一些合理的值

这个函数看起来好像我把p_N和N作图,这是你所期望的吗?

好的,谢谢,这很有意义;这也解释了为什么它适用于任何不使用comb()函数的函数。你能推荐一个好方法将函数应用于数组n的每个元素,并将这些结果输出到一个类似的数组中吗?让我修改上面的答案并给你一个例子。是的,非常感谢!最后我自己找到了一种不同的方法,但为了学习,我会保留你的版本。谢谢