[英]Python - dealing with numpy functions
我有一个问题:我给出了100000个1000个硬币投掷序列,排列成矩阵。 要生成数据,请使用以下命令:
import numpy
data = numpy.random.binomial(1, 0.25, (100000,1000))
现在我需要1000个投掷的前5个序列(数据中的前5行)来绘制(使用pylab)估计Xm,它是从1到m的i之和。 (意思是所有投掷之和最多为m)
现在我试图做以下事情:
data = numpy.random.binomial(1, 0.25, (100000,1000))
x = numpy.linspace(1,1000,1000, int) // in order to create an array of 1000 ints between 1 and 1000
y = numpy.sum(data[0], x) // taking the first row
pylab.plot(x,y)
pylab.show()
而且我收到了一个错误
only length-1 arrays can be converted to Python scalars
而且,当试图做
y = numpy.sum(data[0], tuple(x))
因为我查找了该函数并看到该轴需要是一个整数元组,我得到一个错误
ValueError: too many values for 'axis'
所以基本上我有点失落,可以使用一些帮助。
谢谢!
我想你想使用numpy.cumsum
。 此外, axis
需要是一个整数,而不是数组或数组的元组(我认为这解释了错误)。
这应该工作:
import numpy as np
import pylab
data = np.random.binomial(1, 0.25, (100000,1000))
y = np.cumsum(data[:5, :], axis=1) # cumulative sum of first 5 rows along the rows (axis=1)
pylab.plot(np.arange(1,y.shape[1]+1), y.T)
pylab.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.