Python numpy数组计算

1 投票
1 回答
1310 浏览
提问于 2025-04-18 15:18

我用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]

撰写回答