Python numpy数组计算
我用numpy的直方图功能计算了一个数据的分布,代码是 N,a = np.histogram(z,bins=50)
。现在,a
里存的是50个区间的值,而 N
里存的是这些区间内的数据数量。
我想计算 R-r
的值,使用的是 a
。
我尝试过:
result = [R-r for R,r in zip(a[1:],a)]
但是好像不太管用。我哪里做错了呢?
1 个回答
3
你只需要使用 numpy.diff
就可以了:
>>> a = np.array([1,3,6,8,17,23,45])
>>> np.diff(a)
array([ 2, 3, 2, 9, 6, 22])
补充:
你的代码也能正常工作,但不建议使用列表推导式来实现这个功能,因为NumPy已经提供了一个现成的函数,这样做会更快、更高效。
>>> a = np.array([1,3,6,8,17,23,45])
>>> [R-r for R,r in zip(a[1:],a)]
[2, 3, 2, 9, 6, 22]