Hướng dẫn median of medians python - trung bình của trăn trung bình

Làm thế nào để bạn tìm thấy trung bình của một danh sách trong Python? Danh sách có thể có bất kỳ kích thước nào và các số không được đảm bảo là theo bất kỳ thứ tự cụ thể nào.

Nội phân chính

  • Python có chức năng trung bình không?
  • Làm thế nào để bạn tìm thấy trung bình của một mảng trong Python?
  • Làm cách nào để tính toán trung bình?
  • Làm thế nào để bạn tìm thấy trung bình của một tuple trong Python?

Nếu danh sách chứa số lượng phần tử chẵn, hàm sẽ trả về trung bình của hai phần giữa.

Dưới đây là một số ví dụ (được sắp xếp cho mục đích hiển thị):

median([1]) == 1
median([1, 1]) == 1
median([1, 1, 2, 4]) == 1.5
median([0, 2, 5, 6, 8, 9, 9]) == 6
median([0, 0, 0, 0, 4, 4, 6, 8]) == 2

Hướng dẫn median of medians python - trung bình của trăn trung bình

Veedrac

55.6K14 Huy hiệu vàng108 Huy hiệu bạc165 Huy hiệu Đồng14 gold badges108 silver badges165 bronze badges

Đã hỏi ngày 7 tháng 6 năm 2014 lúc 21:04Jun 7, 2014 at 21:04

2

Python 3.4 có

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
7:

Trả về trung bình (giá trị trung bình) của dữ liệu số.

Khi số lượng điểm dữ liệu là lẻ, hãy trả về điểm dữ liệu giữa. Khi số lượng điểm dữ liệu là chẵn, trung bình được nội suy bằng cách lấy trung bình của hai giá trị trung bình:

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0

Usage:

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3

Nó cũng khá cẩn thận với các loại:

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')

Đã trả lời ngày 8 tháng 6 năm 2014 lúc 0:08Jun 8, 2014 at 0:08

VeedracveedracVeedrac

55.6K14 Huy hiệu vàng108 Huy hiệu bạc165 Huy hiệu Đồng14 gold badges108 silver badges165 bronze badges

3

Đã hỏi ngày 7 tháng 6 năm 2014 lúc 21:04python-2.x):

def median(lst):
    n = len(lst)
    s = sorted(lst)
    return (s[n//2-1]/2.0+s[n//2]/2.0, s[n//2])[n % 2] if n else None

>>> median([-5, -5, -3, -4, 0, -1])
-3.5

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
8:

>>> from numpy import median
>>> median([1, -4, -1, -1, 1, -3])
-1.0

Python 3.4 có

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
7:

>>> from statistics import median
>>> median([5, 2, 3, 8, 9, -2])
4.0

Trả về trung bình (giá trị trung bình) của dữ liệu số.Jun 7, 2014 at 23:33

Khi số lượng điểm dữ liệu là lẻ, hãy trả về điểm dữ liệu giữa. Khi số lượng điểm dữ liệu là chẵn, trung bình được nội suy bằng cách lấy trung bình của hai giá trị trung bình:A.J. Uppal

Nó cũng khá cẩn thận với các loại:6 gold badges41 silver badges74 bronze badges

7

Đã trả lời ngày 8 tháng 6 năm 2014 lúc 0:08

Veedracveedrac

(Hoạt động với Python-2.x):

Đối với Python-3.x, hãy sử dụng

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
7:16 gold badges43 silver badges62 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 23:33Jun 7, 2014 at 22:09

A.J. Uppala.J. Uppalswolfe

Phim thương hiệu vàng 18.6K641 Huy hiệu bạc74 Hàng đồng5 silver badges8 bronze badges

2

Hàm

def median(lst):
    n = len(lst)
    s = sorted(lst)
    return (s[n//2-1]/2.0+s[n//2]/2.0, s[n//2])[n % 2] if n else None
0 rất hữu ích cho việc này. Sử dụng hàm được sắp xếp để đặt hàng danh sách, sau đó chỉ cần trả về giá trị giữa (hoặc trung bình hai giá trị giữa nếu danh sách chứa số lượng phần tử chẵn).

def median(data):
    data.sort()
    mid = len(data) // 2
    return (data[mid] + data[~mid]) / 2

________số 8Jan 21, 2018 at 17:22

vvvvvVlad Bezden

18.6K16 Huy hiệu vàng43 Huy hiệu bạc62 Huy hiệu đồng23 gold badges235 silver badges174 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 22:09

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
0

Swolfeswolfe

8765 Huy hiệu bạc8 Huy hiệu Đồng

Tất nhiên bạn có thể sử dụng các chức năng xây dựng trong các chức năng, nhưng nếu bạn muốn tạo riêng bạn, bạn có thể làm một cái gì đó như thế này. Bí quyết ở đây là sử dụng ~ toán tử lật số dương sang âm. Chẳng hạn ~ 2 -> -3 và sử dụng tiêu cực trong danh sách trong Python sẽ đếm các mục từ cuối. Vì vậy, nếu bạn có mid == 2 thì nó sẽ lấy phần tử thứ ba từ mục đầu và thứ ba từ cuối.12 gold badges32 silver badges42 bronze badges

Đã trả lời ngày 21 tháng 1 năm 2018 lúc 17:22Apr 25, 2015 at 20:18

2

Vlad Bezdenvlad Bezden

75.5K23 Huy hiệu vàng235 Huy hiệu bạc174 Huy hiệu đồng

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
1

Đây là một giải pháp sạch hơn:

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
2

Lưu ý: Câu trả lời đã thay đổi để kết hợp gợi ý trong bình luận.

SihaJun 8, 2014 at 0:49

VeedracveedracVeedrac

55.6K14 Huy hiệu vàng108 Huy hiệu bạc165 Huy hiệu Đồng14 gold badges108 silver badges165 bronze badges

2

Đã hỏi ngày 7 tháng 6 năm 2014 lúc 21:04

Python 3.4 có

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
7:

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
3

Trả về trung bình (giá trị trung bình) của dữ liệu số.Jun 7, 2014 at 22:48

5

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
4

Khi số lượng điểm dữ liệu là lẻ, hãy trả về điểm dữ liệu giữa. Khi số lượng điểm dữ liệu là chẵn, trung bình được nội suy bằng cách lấy trung bình của hai giá trị trung bình:

Nó cũng khá cẩn thận với các loại:1 gold badge35 silver badges51 bronze badges

Đã trả lời ngày 8 tháng 6 năm 2014 lúc 0:08Sep 25, 2018 at 18:22

VeedracveedracBulent

(Hoạt động với Python-2.x):1 silver badge1 bronze badge

0

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
5

Đối với Python-3.x, hãy sử dụng

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
7:Mar 4, 2016 at 11:50

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 23:33warvariuc

A.J. Uppala.J. Uppal36 gold badges167 silver badges225 bronze badges

Phim thương hiệu vàng 18.6K641 Huy hiệu bạc74 Hàng đồng

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
6

Hàm

def median(lst):
    n = len(lst)
    s = sorted(lst)
    return (s[n//2-1]/2.0+s[n//2]/2.0, s[n//2])[n % 2] if n else None
0 rất hữu ích cho việc này. Sử dụng hàm được sắp xếp để đặt hàng danh sách, sau đó chỉ cần trả về giá trị giữa (hoặc trung bình hai giá trị giữa nếu danh sách chứa số lượng phần tử chẵn).

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
7

________số 8

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
8

vvvvv

18.6K16 Huy hiệu vàng43 Huy hiệu bạc62 Huy hiệu đồng15 gold badges150 silver badges131 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 22:09Jul 5, 2020 at 23:16

SwolfeswolfeThe AG

8765 Huy hiệu bạc8 Huy hiệu Đồng8 silver badges17 bronze badges

0

Tất nhiên bạn có thể sử dụng các chức năng xây dựng trong các chức năng, nhưng nếu bạn muốn tạo riêng bạn, bạn có thể làm một cái gì đó như thế này. Bí quyết ở đây là sử dụng ~ toán tử lật số dương sang âm. Chẳng hạn ~ 2 -> -3 và sử dụng tiêu cực trong danh sách trong Python sẽ đếm các mục từ cuối. Vì vậy, nếu bạn có mid == 2 thì nó sẽ lấy phần tử thứ ba từ mục đầu và thứ ba từ cuối.

Đã trả lời ngày 21 tháng 1 năm 2018 lúc 17:22

>>> median([1, 3, 5])
3
>>> median([1, 3, 5, 7])
4.0
9

Vlad Bezdenvlad BezdenJan 21, 2016 at 0:00

0

75.5K23 Huy hiệu vàng235 Huy hiệu bạc174 Huy hiệu đồng

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
0

Đây là một giải pháp sạch hơn:Apr 22, 2020 at 12:07

Gabriel123Gabriel123Gabriel123

Lưu ý: Câu trả lời đã thay đổi để kết hợp gợi ý trong bình luận.4 silver badges10 bronze badges

Siha

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
1

Đã trả lời ngày 27 tháng 5 năm 2016 lúc 8:52May 27, 2016 at 8:52

Chỉ cần hai dòng là đủ.

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
2

Asclepius

51.9K15 Huy hiệu vàng150 Huy hiệu bạc131 Huy hiệu đồng15 gold badges150 silver badges131 bronze badges

Đã trả lời ngày 17 tháng 9 năm 2020 lúc 2:32Sep 17, 2020 at 2:32

Rt.TongRt.TongRt.Tong

1572 Huy hiệu bạc5 Huy hiệu Đồng2 silver badges5 bronze badges

chức năng trung bình

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
3

Đã trả lời ngày 21 tháng 5 năm 2015 lúc 13:55May 21, 2015 at 13:55

Tôi đã có một số vấn đề với danh sách các giá trị nổi. Cuối cùng tôi đã sử dụng đoạn mã từ Thống kê Python3.Median và đang làm việc hoàn hảo với các giá trị nổi mà không cần nhập. nguồn

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
4

Đã trả lời ngày 3 tháng 5 năm 2017 lúc 16:54May 3, 2017 at 16:54

DandanDan

7171 Huy hiệu vàng7 Huy hiệu bạc19 Huy hiệu đồng1 gold badge7 silver badges19 bronze badges

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
5

Đã trả lời ngày 18 tháng 2 năm 2018 lúc 18:00Feb 18, 2018 at 18:00

vk123vk123vk123

Phù hiệu bằng đồng 2133 bronze badges

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
6

Đã trả lời ngày 6 tháng 4 năm 2018 lúc 21:55Apr 6, 2018 at 21:55

3

Tôi đã xác định hàm trung bình cho một danh sách các số là

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
7

Đã trả lời ngày 14 tháng 10 năm 2014 lúc 14:12Oct 14, 2014 at 14:12

1

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
8

Đã trả lời ngày 26 tháng 8 năm 2019 lúc 7:12Aug 26, 2019 at 7:12

Một cách tiếp cận tổng quát hơn cho trung bình (và phần trăm) sẽ là:

import statistics

items = [6, 1, 8, 2, 3]

statistics.median(items)
#>>> 3
9

Đã trả lời ngày 7 tháng 5 năm 2020 lúc 19:46May 7, 2020 at 19:46

Conmakconmakconmak

9928 Huy hiệu bạc13 Huy hiệu đồng8 silver badges13 bronze badges

Thử cái này

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
0

Đã trả lời ngày 20 tháng 12 năm 2021 lúc 13:32Dec 20, 2021 at 13:32

0xN1nja0xN1nja0xN1nja

8085 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

1

Thực hiện nó:

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
1

Nguồn từ

Asclepius

51.9K15 Huy hiệu vàng150 Huy hiệu bạc131 Huy hiệu đồng15 gold badges150 silver badges131 bronze badges

Đã trả lời ngày 17 tháng 9 năm 2020 lúc 2:32Oct 4, 2020 at 16:36

1572 Huy hiệu bạc5 Huy hiệu Đồngduyuanchao

chức năng trung bình23 silver badges15 bronze badges

Đã trả lời ngày 21 tháng 5 năm 2015 lúc 13:55:

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
2

Tôi đã có một số vấn đề với danh sách các giá trị nổi. Cuối cùng tôi đã sử dụng đoạn mã từ Thống kê Python3.Median và đang làm việc hoàn hảo với các giá trị nổi mà không cần nhập. nguồnFeb 15, 2020 at 11:03

1

Đã trả lời ngày 3 tháng 5 năm 2017 lúc 16:54

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
3

Asclepius

51.9K15 Huy hiệu vàng150 Huy hiệu bạc131 Huy hiệu đồng15 gold badges150 silver badges131 bronze badges

DandanApr 27, 2021 at 5:17

7171 Huy hiệu vàng7 Huy hiệu bạc19 Huy hiệu đồng

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
4

Đã trả lời ngày 18 tháng 2 năm 2018 lúc 18:00 Basically if the number of items in the list is odd, return the middle number, otherwise, if you half an even list, python automatically rounds the higher number so we know the number before that will be one less (since we sorted it) and we can add the default higher number and the number lower than it and divide them by 2 to find the median.

Asclepius

51.9K15 Huy hiệu vàng150 Huy hiệu bạc131 Huy hiệu đồng15 gold badges150 silver badges131 bronze badges

Phù hiệu bằng đồng 213Nov 6, 2020 at 6:31

1

Đã trả lời ngày 6 tháng 4 năm 2018 lúc 21:55

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
5

Tôi đã xác định hàm trung bình cho một danh sách các số làJan 24, 2017 at 19:05

Đã trả lời ngày 14 tháng 10 năm 2014 lúc 14:12I Like

Đã trả lời ngày 26 tháng 8 năm 2019 lúc 7:122 gold badges20 silver badges41 bronze badges

2

Một cách tiếp cận tổng quát hơn cho trung bình (và phần trăm) sẽ là:

statistics.median(map(float, items))
#>>> 3.0

from decimal import Decimal
statistics.median(map(Decimal, items))
#>>> Decimal('3')
6

Đã trả lời ngày 7 tháng 5 năm 2020 lúc 19:46

ConmakconmakDec 7, 2018 at 16:11

9928 Huy hiệu bạc13 Huy hiệu đồngFarhan

Thử cái này14 silver badges22 bronze badges

2

Đã trả lời ngày 20 tháng 12 năm 2021 lúc 13:32

8085 Huy hiệu bạc13 Huy hiệu Đồngthe statistics. median() function is used to calculate the median value of a data set. The median() method takes in one parameter: the data list. When you call the median() method, it will order a list of values and find its middle value.

Thực hiện nó:

Nguồn từ. If the number of values, n, is even, then the median is the average of the values in n/2 and n/2 + 1 position in the sorted list(or array) of values.

Đã trả lời ngày 4 tháng 10 năm 2020 lúc 16:36

Duyuanchaoduyuanchao.

3,433333 Huy hiệu bạc15 Huy hiệu đồng

Chức năng trung bình:

Đã trả lời ngày 15 tháng 2 năm 2020 lúc 11:03

Đơn giản, hãy tạo một hàm trung bình với một đối số như một danh sách số và gọi hàm.

Đã trả lời ngày 27 tháng 4 năm 2021 lúc 5:17

Những gì tôi đã làm là thế này:use statistics. median() method.