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;
Phương pháp 1: Phương thức std () trong gói numpy.std() method in NumPy package. Python3
24.674668907895920 24.674668907895921 24.674668907895922 24.674668907895923 24.674668907895924 24.674668907895923 24.674668907895926 24.674668907895923 24.674668907895928__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.674668907895923 >>> 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.674668907895923 >>> 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.674668907895923 >>> 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.450000050 >>> a = np.zeros((2, 512*512), dtype=np.float32) >>> a[0, :] = 1.0 >>> a[1, :] = 0.1 >>> np.std(a) 0.450000051 >>> a = np.zeros((2, 512*512), dtype=np.float32) >>> a[0, :] = 1.0 >>> a[1, :] = 0.1 >>> np.std(a) 0.450000052 24.674668907895920 >>> a = np.zeros((2, 512*512), dtype=np.float32) >>> a[0, :] = 1.0 >>> a[1, :] = 0.1 >>> np.std(a) 0.450000054 >>> 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.450000057 >>> a = np.zeros((2, 512*512), dtype=np.float32) >>> a[0, :] = 1.0 >>> a[1, :] = 0.1 >>> np.std(a) 0.450000058 Đầ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
>>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary0 >>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary1 >>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary2 24.674668907895923 >>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary4 24.674668907895923 >>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary6 24.674668907895923 >>> np.std(a, dtype=np.float64) 0.44999999925494177 # may vary8 24.674668907895923 >>> 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.674668907895923 >>> 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.674668907895923 >>> 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.04 24.674668907895923 24.674668907895922 >>> 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.07 Đầ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.08 để 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à, 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]]) 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_likeTí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, optionalTrụ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, optionalLoạ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, optionalMả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, optionalCó 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à 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 Các yếu tố cần bao gồm trong độ lệch chuẩn. Xem 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à, Độ lệch bình phương trung bình thường được tính là Lưu ý rằng, đối với các số phức, Đố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 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 |