Я работаю над некоторыми графиками и статистикой для работы, и я не уверен, как я могу сделать некоторые статистические данные с использованием numpy: у меня есть список цен и еще один из basePrices. И я хочу знать, сколько цен с X процентами выше basePrice, сколько с Y процентов выше basePrice.
Есть ли простой способ сделать это с помощью numpy?
Скажите, что у вас
>>> prices = array([100, 200, 150, 145, 300])
>>> base_prices = array([90, 220, 100, 350, 350])
Тогда количество цен, превышающих базовую цену более чем на 10%,
>>> sum(prices > 1.10 * base_prices)
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
В дополнение к ответу df, если вы хотите узнать конкретные цены, которые выше базовых цен, вы можете сделать:
цены [цены > (1.10 * base_prices)]
Я не думаю, что вам нужно 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