Я хочу найти среднее значение и стандартное отклонение 1-й, 2-й, ... цифр нескольких (Z) списков. Например, у меня есть
A_rank=[0.8,0.4,1.2,3.7,2.6,5.8]
B_rank=[0.1,2.8,3.7,2.6,5,3.4]
C_Rank=[1.2,3.4,0.5,0.1,2.5,6.1]
# etc (up to Z_rank )...
Теперь я хочу взять среднее значение и зЬе в *_Rank[0]
среднее и зЬй из *_Rank[1]
, и т.д.
(т.е. средних и станда 1 - го разряда из всех (a..z) _rank списков,
средние и зЬе 2 - го разряда из все списки (A..Z) _rank;
среднее и стандартное значение третьей цифры ...; и т. д.).
python
list
standard-deviation
Physics_for_all
источник
источник
Ответы:
Начиная с Python 3.4 / PEP450 ,
statistics module
в стандартной библиотеке есть методstdev
вычисления стандартного отклонения итераций, подобных вашему:источник
pstddev
вероятно, следует использовать вместо этого, если ваш список представляет всю совокупность (т. Е. Список не является выборкой генеральной совокупности).stddev
рассчитывается с использованием выборочной дисперсии и будет завышать среднее значение генеральной совокупности.stdev
иpstdev
не используютсяstd
для,standard
как можно было бы ожидать. Я не мог отредактировать сообщение, так как для редактирования нужно изменить как минимум 6 символов ...Я бы поместил
A_Rank
и др. В 2D NumPy массив , а затем использовал быnumpy.mean()
иnumpy.std()
для вычисления средних и стандартных отклонений:источник
STDEV.P()
Numpystd(ddof=0)
вычисляют SD популяций или нескорректированную выборку SD, в то время как функция Excel и функцияSTDEV.S()
Numpystd(ddof=1)
вычисляют (скорректированную) выборку SD, которая равна sqrt (N / (N-1) ) умноженное на численность населения sd, где N - количество точек. Подробнее: en.m.wikipedia.org/wiki/…Вот код на чистом Python, который вы можете использовать для вычисления среднего и стандартного отклонения.
Весь приведенный ниже код основан на
statistics
модуле в Python 3.4+.Примечание: для повышения точности при суммировании чисел с плавающей запятой
statistics
модуль использует настраиваемую функцию,_sum
а не встроеннуюsum
которую я использовал вместо нее.Теперь у нас есть например:
источник
pvar=ss/(n-1)
?n-1
. Приведенный выше код предназначен для населения SD (так что естьn
степени свободы).stddev
функцию, чтобы она могла вычислять стандартные отклонения как выборки, так и совокупности.В Python 2.7.1 вы можете рассчитать стандартное отклонение, используя
numpy.std()
для:numpy.std()
без дополнительных аргументов, кроме списка данных.Он вычисляет стандартную выборку, а не стандартную погоду.
источник
В python 2.7 вы можете использовать NumPy,
numpy.std()
чтобы получить стандартное отклонение населения .В Python 3.4
statistics.stdev()
возвращается стандартное отклонение образца.pstdv()
Функция является такой же , какnumpy.std()
.источник
Используя python, есть несколько методов:
Подход 1 - использование функции
Подход 2: вычислить дисперсию и извлечь из нее квадратный корень
Подход 3: использование базовой математики
Примечание:
variance
вычисляет дисперсию выборочной совокупностиpvariance
вычисляет дисперсию всего населенияstdev
иpstdev
источник
чистый код Python:
источник
sqrt(sum((x - mean)**2 for x in lst) / len(lst))
В других ответах рассказывается, как сделать std dev на python в достаточной степени, но никто не объясняет, как выполнить описанный вами странный обход.
Я предполагаю, что Аризона - это все население. Если не увидишь Оме Ответ о том, как делать выводы из образца.
Итак, чтобы получить стандартное отклонение / среднее значение первой цифры каждого списка, вам понадобится что-то вроде этого:
Чтобы сократить код и обобщить его до любой n-й цифры, используйте следующую функцию, которую я сгенерировал для вас:
Теперь вы можете просто получить стандартное и среднее значение всех n-х разрядов от А до Я следующим образом:
источник
str([chr(x)+'_rank[n]' for x in range(65,65+26)]).replace("'", "")