1

我正在处理一些工作的情节和统计数据,但我不确定如何使用 numpy 进行一些统计:我有一个价格列表和另一个 basePrices。我想知道有多少价格高于basePrice X%,有多少价格高于basePrice Y%。

有没有一种简单的方法可以使用 numpy 做到这一点?

4

4 回答 4

8

说你有

>>> prices = array([100, 200, 150, 145, 300])
>>> base_prices = array([90, 220, 100, 350, 350])

那么高于基准价格 10% 以上的价格数量是

>>> sum(prices > 1.10 * base_prices)
2
于 2009-02-20T16:12:39.297 回答
2

只是为了娱乐,这里对 dF 的回答略有不同:

>>> prices = array([100, 200, 150, 145, 300])
>>> base_prices = array([90, 220, 100, 350, 350])
>>> ratio = prices / base_prices

然后你可以提取高于 5%、高于 10% 等的数字

>>> sum(ratio > 1.05)
2
>>> sum(ratio > 1.10)
2
>>> sum(ratio > 1.15)
1
于 2009-02-20T16:58:35.787 回答
1

除了 df 的回答,如果您想知道高于基本价格的具体价格,您可以这样做:

价格[价格 > (1.10 * base_prices)]

于 2009-02-20T16:19:14.883 回答
0

我不认为你需要 numpy ...

prices = [40.0, 150.0, 35.0, 65.0, 90.0]
baseprices = [45.0, 130.0, 40.0, 80.0, 100.0]
x = .1
y = .5

# how many are within 10%
len([p for p,bp in zip(prices,baseprices) if p <= (1+x)*bp]) # 1

# how many are within 50%
len([p for p,bp in zip(prices,baseprices) if p <= (1+y)*bp]) # 5
于 2009-02-20T16:21:24.283 回答