Hướng dẫn get the standard deviation of the values in matrix python - lấy độ lệch chuẩn của các giá trị trong ma trận python

Cải thiện bài viết

Lưu bài viết

Trong bài viết này, chúng ta sẽ học cách tính độ lệch chuẩn của ma trận bằng Python.

Độ lệch chuẩn được sử dụng để đo lường sự lây lan của các giá trị trong bộ dữ liệu. Nó chỉ ra các biến thể hoặc phân tán các giá trị trong bộ dữ liệu và cũng giúp xác định sự tự tin trong kết luận thống kê mô hình. Nó được biểu thị bằng sigma (σ) và tính toán bằng cách lấy căn bậc hai của phương sai. Nếu độ lệch chuẩn thấp, nó có nghĩa là hầu hết các giá trị gần với giá trị trung bình hơn và nếu cao, điều đó có nghĩa là gần với giá trị trung bình hơn. Trong bài viết này, chúng ta sẽ tìm hiểu những cách khác nhau để tính toán SD trong Python.

Chúng ta có thể tính toán độ lệch chuẩn bằng phương pháp sau: & nbsp;

  1. Phương thức std () trong gói numpy
  2. Phương thức stdev () trong gói thống kê

Phương pháp 1: Phương thức std () trong gói numpy.std() method in NumPy package.

Python3

import numpy as np

matrix

24.67466890789592
0
24.67466890789592
1
24.67466890789592
2
24.67466890789592
3
24.67466890789592
4
24.67466890789592
3
24.67466890789592
6
24.67466890789592
3
24.67466890789592
8__19

>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.std()
3.4520525295346629 # may vary
>>> x.std(0)
matrix([[ 3.26598632,  3.26598632,  3.26598632,  3.26598632]]) # may vary
>>> x.std(1)
matrix([[ 1.11803399],
        [ 1.11803399],
        [ 1.11803399]])
8
>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.std()
3.4520525295346629 # may vary
>>> x.std(0)
matrix([[ 3.26598632,  3.26598632,  3.26598632,  3.26598632]]) # may vary
>>> x.std(1)
matrix([[ 1.11803399],
        [ 1.11803399],
        [ 1.11803399]])
9
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
0
24.67466890789592
3
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
2
24.67466890789592
3
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
4
24.67466890789592
3
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
6
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
7

>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
8
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
9
>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
0
>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
1

>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
2
24.67466890789592
0
>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
4

>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
8
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
9
>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
7
>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005
8

Đầu ra:

Your matrix:
[[33 55 66 74]
[23 45 65 27]
[87 96 34 54]]
Standard Deviation :
22.584870796373593

Phương pháp 2: Phương thức stdev () trong gói thống kê.stdev() method in Statistics package.

Python3

import

>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
0

>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
1
>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
2
24.67466890789592
3
>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
4
24.67466890789592
3
>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
6
24.67466890789592
3
>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary
8
24.67466890789592
3
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])
0
24.67466890789592
3
>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.std()
3.4520525295346629 # may vary
>>> x.std(0)
matrix([[ 3.26598632,  3.26598632,  3.26598632,  3.26598632]]) # may vary
>>> x.std(1)
matrix([[ 1.11803399],
        [ 1.11803399],
        [ 1.11803399]])
2
24.67466890789592
3
>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.std(a)
2.614064523559687 # may vary
>>> np.std(a, where=[[True], [True], [False]])
2.0
4
24.67466890789592
3
24.67466890789592
2
>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.std(a)
2.614064523559687 # may vary
>>> np.std(a, where=[[True], [True], [False]])
2.0
7

Đầu ra:

24.67466890789592

phương pháp

Matrix.std (trục = Không, dtype = none, out = none, ddof = 0) [Nguồn]#std(axis=None, dtype=None, out=None, ddof=0)[source]#

Trả về độ lệch chuẩn của các phần tử mảng dọc theo trục đã cho.

Tham khảo

>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.std(a)
2.614064523559687 # may vary
>>> np.std(a, where=[[True], [True], [False]])
2.0
8 để biết tài liệu đầy đủ.

Ghi chú

Độ lệch chuẩn là căn bậc hai của mức trung bình của độ lệch bình phương so với giá trị trung bình, tức là, import7, trong đó import8.

Ví dụ

>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.std()
3.4520525295346629 # may vary
>>> x.std(0)
matrix([[ 3.26598632,  3.26598632,  3.26598632,  3.26598632]]) # may vary
>>> x.std(1)
matrix([[ 1.11803399],
        [ 1.11803399],
        [ 1.11803399]])

numpy.std (a, axis = none, dtype = none, out = none, ddof = 0, keepdims =, *, where =) [nguồn]#std(a, axis=None, dtype=None, out=None, ddof=0, keepdims= value>, *, where= value>)[source]#

Tính độ lệch chuẩn dọc theo trục được chỉ định.

Trả về độ lệch chuẩn, một thước đo sự lây lan của một phân phối, của các phần tử mảng. Độ lệch chuẩn được tính toán cho mảng phẳng theo mặc định, nếu không thì trên trục được chỉ định.

Parametersaarray_likeaarray_like

Tính độ lệch chuẩn của các giá trị này.

trục hoặc int hoặc tuple của int, tùy chọnNone or int or tuple of ints, optional

Trục hoặc trục dọc theo đó độ lệch chuẩn được tính toán. Mặc định là tính toán độ lệch chuẩn của mảng phẳng.

Mới trong phiên bản 1.7.0.

Nếu đây là một bộ dữ liệu của INT, độ lệch chuẩn được thực hiện trên nhiều trục, thay vì một trục đơn hoặc tất cả các trục như trước đây.

DtypedType, tùy chọndtype, optional

Loại để sử dụng trong tính toán độ lệch chuẩn. Đối với các mảng loại số nguyên, mặc định là float64, đối với các mảng các loại float, nó giống như loại mảng.

Outndarray, tùy chọnndarray, optional

Mảng đầu ra thay thế để đặt kết quả. Nó phải có hình dạng giống như đầu ra dự kiến ​​nhưng loại (của các giá trị được tính toán) sẽ được đúc nếu cần thiết.

ddofint, tùy chọnint, optional

Có nghĩa là mức độ tự do của Delta. Các ước số được sử dụng trong các tính toán là import2, trong đó import3 đại diện cho số lượng các phần tử. Theo mặc định DDOF bằng không.

Keepdimsbool, tùy chọnbool, optional

Nếu điều này được đặt thành TRUE, các trục bị giảm được để lại trong kết quả là kích thước với kích thước một. Với tùy chọn này, kết quả sẽ phát sóng chính xác so với mảng đầu vào.

Nếu giá trị mặc định được thông qua, thì KeepDim sẽ không được chuyển qua phương thức import4 của các lớp phụ của import0, tuy nhiên mọi giá trị không mặc định sẽ có. Nếu phương thức lớp phụ không thực hiện được, bất kỳ trường hợp ngoại lệ nào cũng sẽ được nêu ra.

wherearray_like của bool, tùy chọnarray_like of bool, optional

Các yếu tố cần bao gồm trong độ lệch chuẩn. Xem import6 để biết chi tiết.

Mới trong phiên bản 1.20.0.

ReturnSstArdard_DeviationNDarray, xem tham số DTYPE ở trên.standard_deviationndarray, see dtype parameter above.

Nếu không có, hãy trả về một mảng mới chứa độ lệch chuẩn, nếu không hãy trả về một tham chiếu đến mảng đầu ra.

Ghi chú

Độ lệch chuẩn là căn bậc hai của mức trung bình của độ lệch bình phương so với giá trị trung bình, tức là, import7, trong đó import8.

Độ lệch bình phương trung bình thường được tính là import9, trong đó numpy as np0. Tuy nhiên, nếu DDOF được chỉ định, thì Divisor import2 được sử dụng thay thế. Trong thực tiễn thống kê tiêu chuẩn, numpy as np2 cung cấp một công cụ ước tính không thiên vị về phương sai của dân số vô hạn. numpy as np3 cung cấp ước tính khả năng tối đa của phương sai cho các biến phân phối thông thường. Độ lệch chuẩn được tính toán trong hàm này là căn bậc hai của phương sai ước tính, do đó, ngay cả với numpy as np2, nó sẽ không phải là một ước tính không thiên vị về độ lệch chuẩn mỗi se.

Lưu ý rằng, đối với các số phức, import4 lấy giá trị tuyệt đối trước khi bình phương, do đó kết quả luôn luôn là thật và không âm.

Đối với đầu vào điểm nổi, STD được tính toán bằng cách sử dụng cùng độ chính xác mà đầu vào có. Tùy thuộc vào dữ liệu đầu vào, điều này có thể khiến kết quả không chính xác, đặc biệt là đối với float32 (xem ví dụ bên dưới). Chỉ định một bộ tích lũy độ chính xác cao hơn bằng cách sử dụng từ khóa numpy as np6 có thể làm giảm bớt vấn đề này.

Ví dụ

>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949 # may vary
>>> np.std(a, axis=0)
array([1.,  1.])
>>> np.std(a, axis=1)
array([0.5,  0.5])

Trong một độ chính xác đơn, std () có thể không chính xác:

>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.std(a)
0.45000005

Tính toán độ lệch chuẩn trong float64 chính xác hơn:

>>> np.std(a, dtype=np.float64)
0.44999999925494177 # may vary

Chỉ định một nơi đối số:

>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.std(a)
2.614064523559687 # may vary
>>> np.std(a, where=[[True], [True], [False]])
2.0