繁体   English   中英

Python - 处理numpy函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM