Hướng dẫn này sẽ giải thích hàm bình thường ngẫu nhiên NumPy … đôi khi được gọi là np.random.normal. Nó giải thích cú pháp và hiển thị các ví dụ rõ ràng.

Bạn đang xem : Phân phối chuẩn ngẫu nhiên ngẫu nhiên không rõ ràng

Hướng dẫn này sẽ đề cập đến hàm chuẩn ngẫu nhiên Numpy (AKA, np.random.normal).

Nếu bạn đang thực hiện bất kỳ loại thống kê hoặc khoa học dữ liệu nào bằng Python, bạn thường cần làm việc với các số ngẫu nhiên. Và đặc biệt, bạn sẽ thường xuyên phải làm việc với các số có phân phối chuẩn.

Hàm chuẩn ngẫu nhiên Numpy tạo ra một mẫu số được rút ra từ phân phối chuẩn, hay còn gọi là phân phối Gauss.

< p> Hướng dẫn này sẽ chỉ cho bạn cách hoạt động của hàm và sẽ hướng dẫn bạn cách sử dụng hàm.

Nếu bạn chỉ cần trợ giúp về một số vấn đề cụ thể, bạn có thể chuyển sang phần thích hợp với một trong các các liên kết sau:

Mục lục:

Nhưng nếu bạn hơi lạ lẫm với Numpy, tôi khuyên bạn nên đọc toàn bộ hướng dẫn.

< span id = "numpy-random-normal-intro">

Tổng quan nhanh về Numpy Random Normal

Hãy bắt đầu với phần giải thích cấp cao về Numpy Random Bình thường thì có.

Đánh giá nhanh về Numpy

Hãy xem xét ngắn gọn Numpy là gì.

Numpy là một mô-đun cho mục tiêu Ngôn ngữ lập trình Python được sử dụng cho khoa học dữ liệu và khoa học dữ liệu tính toán hư cấu.

Cụ thể, Numpy thực hiện thao tác dữ liệu trên dữ liệu số. Nó cho phép bạn thu thập dữ liệu số vào cấu trúc dữ liệu, được gọi là mảng Numpy . Nó cũng cho phép bạn thực hiện các phép tính và thao tác khác nhau trên mảng Numpy.

Về cơ bản, Numpy là một bộ công cụ để tạo và làm việc với mảng số trong Python.

(Để biết thêm chi tiết về Khái niệm cơ bản về mảng Numpy, hãy xem hướng dẫn của chúng tôi về mảng NumPy .)

Numpy random normal tạo ra các số có phân phối chuẩn

Vì vậy, Numpy là một gói để làm việc với dữ liệu số trong Python.

np.random.normal phù hợp ở đâu?

Như tôi đã đề cập trước đây, Numpy có nhiều công cụ để làm việc với dữ liệu số. Trong hầu hết các trường hợp, các công cụ của Numpy cho phép bạn thực hiện một trong hai việc: tạo dữ liệu số (có cấu trúc như một mảng Numpy) hoặc thực hiện một số phép tính trên mảng Numpy.

Hàm Numpy random normal cho phép bạn tạo một mảng Numpy chứa dữ liệu được phân phối bình thường.

Đánh giá nhanh về dữ liệu được phân phối thường

Hy vọng rằng bạn đã quen với dữ liệu được phân phối bình thường, nhưng chỉ là một bản cập nhật mới, đây là nội dung trông giống như khi chúng tôi vẽ nó trong biểu đồ:

Dữ liệu được phân phối thông thường có dạng giống như một cái chuông, vì vậy nó thường được gọi là “đường cong hình chuông”.

< h4> 2 Tham số Quan trọng cho Phân phối Bình thường

Quan trọng là, có 2 tham số chính ảnh hưởng đến hình dạng của phân phối:

  • trung bình
  • tiêu chuẩn độ lệch

có nghĩa là cho chúng ta biết đỉnh của phân phối là ở đâu.

Phép đo độ lệch chuẩn cho biết mức độ “trải rộng” của dữ liệu (mặc dù, có những chỉ số khác đo lường mức độ lan truyền của dữ liệu, chẳng hạn như phương sai).

Cả hai chỉ số này đều quan trọng, bởi vì chúng liên quan trực tiếp đến hai tham số cú pháp của chuẩn ngẫu nhiên Numpy.

Vì vậy, để liên kết điều này trở lại np.random.normal, hàm Numpy random normal cho phép chúng tôi tạo dữ liệu được phân phối chuẩn, đồng thời chỉ định các tham số quan trọng như giá trị trung bình và độ lệch chuẩn.

Với ý nghĩ đó, chúng ta hãy xem xét cú pháp.

Cú pháp của hàm Numpy Random Normal

Cú pháp của hàm Numpy random normal khá đơn giản.

Lưu ý rằng trong phần giải thích cú pháp sau và trong suốt phần còn lại của bài đăng blog này, chúng tôi sẽ giả định rằng bạn đã nhập Numpy bằng mã sau: nhập numpy dưới dạng np . Mã đó sẽ cho phép bạn gọi Numpy là np .

np.random.normal Cú pháp

Đây là cú pháp cơ bản:

Để tôi giải thích.

Thông thường, chúng ta sẽ gọi hàm với tên np.random.normal () . Như tôi đã đề cập trước đó, điều này giả định rằng chúng ta đã nhập Numpy với mã import numpy as np .

Bên trong hàm, bạn sẽ thấy 3 tham số: loc , scale , size .

Những điều này cho phép bạn kiểm soát giá trị trung bình, độ lệch chuẩn và kích thước / hình dạng của tương ứng là phân phối chuẩn.

Hãy nói về từng tham số đó.

Các tham số của hàm np.random.normal

Hàm np.random.normal có ba tham số chính kiểm soát đầu ra: loc , scale < / code> và size .

Tôi sẽ giải thích từng tham số đó một cách riêng biệt.

loc

tham số loc kiểm soát giá trị trung bình của dữ liệu đầu ra.

Tham số này mặc định là 0 , vì vậy nếu bạn không sử dụng tham số này để chỉ định giá trị trung bình của phân phối, giá trị trung bình sẽ ở mức 0.

(Tôi sẽ cho bạn xem một ví dụ về điều này trong ví dụ 4 .)

scale

Tham số scale kiểm soát độ lệch chuẩn của phân phối chuẩn.

Theo mặc định, scale Tham số được đặt thành 1.

(Tôi sẽ cho bạn xem ví dụ về điều này trong example 5 .)

size

Tham số size kiểm soát kích thước và hình dạng của đầu ra.

Hãy nhớ rằng đầu ra sẽ là một mảng Numpy. Mảng Numpy có thể là 1 chiều, 2 chiều hoặc đa chiều (tức là 2 hoặc nhiều hơn).

Điều này có thể gây nhầm lẫn nếu bạn không thực sự quen thuộc với mảng Numpy. Để tìm hiểu thêm về cấu trúc mảng Numpy, tôi khuyên bạn nên đọc hướng dẫn của chúng tôi về mảng Numpy .

Đã nói, đây là giải thích nhanh.

Đối số mà bạn cung cấp cho tham số size sẽ quy định kích thước và hình dạng của mảng đầu ra.

Nếu bạn cung cấp một số nguyên, x , np.random.normal sẽ cung cấp x giá trị bình thường ngẫu nhiên trong mảng Numpy 1 chiều.

Bạn cũng có thể chỉ định đầu ra phức tạp hơn.

Ví dụ: nếu bạn chỉ định size = (2, 3) , np.random.normal sẽ tạo ra một mảng Numpy có 2 hàng và 3 cột. Nó sẽ chứa đầy các số được rút ra từ phân phối chuẩn ngẫu nhiên.

Hãy nhớ rằng bạn có thể tạo mảng đầu ra có nhiều hơn 2 thứ nguyên, nhưng vì sự đơn giản, tôi sẽ chuyển điều đó sang một hướng dẫn khác.

(Tôi sẽ chỉ cho bạn một ví dụ về điều này trong tham số trong example 3 .)

Ví dụ: cách sử dụng hàm Numpy random normal

Bây giờ tôi đã chỉ cho bạn cú pháp của hàm Numpy random normal, hãy cùng xem một số ví dụ về cách nó hoạt động.

Ví dụ:

Chạy mã này trước khi bạn chạy các ví dụ

Trước khi bạn làm việc với bất kỳ trong số các ví dụ sau, hãy đảm bảo rằng bạn chạy mã sau:

nhập numpy dưới dạng np

Tôi đã giải thích ngắn gọn mã này ở phần đầu của hướng dẫn, nhưng nó quan trọng đối với các ví dụ sau, vì vậy tôi sẽ giải thích lại.

Đoạn mã import numpy as np nhập mô-đun Numpy vào môi trường làm việc của bạn và cho phép bạn gọi các hàm từ Numpy. Nếu bạn không sử dụng câu lệnh import để nhập Numpy, các hàm Numpy'a sẽ không khả dụng.

Hơn nữa, bằng cách nhập Numpy dưới dạng np , chúng tôi đang đặt cho mô-đun Numpy một "biệt hiệu". Vì vậy, chúng ta có thể gọi Numpy là np khi chúng ta gọi các hàm Numpy.

Bạn có thể hiểu điều này nếu bạn đã làm việc với các mô-đun Python trước đây, nhưng nếu bạn thực sự là người mới bắt đầu, nó có thể hơi khó hiểu. Vì vậy, tôi muốn giải thích nhanh về vấn đề này.

Ghi chú nhanh về Hạt giống ngẫu nhiên Numpy

Trong một số ví dụ sau, bạn sẽ thấy tôi sử dụng np.random.seed để đặt hạt giống cho trình tạo số ngẫu nhiên của Numpy.

Tôi đang làm điều này để đầu ra của mã là "có thể lặp lại". Nếu bạn sử dụng cùng một hạt giống mà tôi làm trong các ví dụ này, bạn sẽ nhận được cùng một kết quả đầu ra (nhưng nếu bạn sử dụng một giá trị hạt giống khác, bạn sẽ nhận được đầu ra khác nhau).

Chúng tôi thường sử dụng np.random .seed để có thể lặp lại, đặc biệt trong ngữ cảnh của hướng dẫn.

Nếu bạn muốn đọc thêm về hạt giống ngẫu nhiên Numpy, bạn có thể xem hướng dẫn của chúng tôi về hàm np.random.seed .

Được, bây giờ hãy làm việc với một số ví dụ.

< / p>

Ví dụ 1: Vẽ một số từ phân phối chuẩn

Đầu tiên, hãy xem một ví dụ rất đơn giản.

Ở đây, chúng ta sẽ sử dụng np.random.normal để tạo một quan sát duy nhất từ ​​phân phối chuẩn.

np.random.normal (1)

Mã này sẽ tạo ra một số duy nhất được rút ra từ phân phối chuẩn với giá trị trung bình là 0 và độ lệch chuẩn là 1.

Về cơ bản, mã này hoạt động giống như np .random.normal (size = 1, loc = 0, scale = 1) .

Hãy nhớ rằng: nếu chúng tôi không chỉ định giá trị cho các tham số loc scale , chúng sẽ mặc định thành loc = 0 scale = 1 .

Ví dụ 2: Vẽ 5 số từ bình thường phân phối

Bây giờ, hãy vẽ 5 số từ phân phối chuẩn.

Mã này sẽ trông gần giống hệt như mã trong ví dụ trước.

np.random.normal (5)

Tại đây, giá trị 5 đang được chuyển cho tham số size . Nó chỉ ra rằng chúng tôi muốn tạo ra một mảng Numpy với 5 giá trị, được lấy từ phân phối chuẩn.

Cũng xin lưu ý rằng vì chúng tôi chưa chỉ định rõ ràng các giá trị cho loc scale , chúng sẽ mặc định thành loc = 0 scale = 1 .

< / span>

Ví dụ 3: Tạo mảng Numpy 2 chiều gồm các giá trị được phân phối chuẩn

Bây giờ, chúng ta sẽ tạo mảng 2 chiều gồm các giá trị được phân phối chuẩn.

Để thực hiện việc này, chúng tôi cần cung cấp nhiều giá trị cho tham số size .

np.random.seed (42)
np.random.normal (size = (2, 3))

Cái nào tạo ra đầu ra:

mảng ([[1.62434536, -0.61175641, -0.52817175],
       [-1,07296862, 0,86540763, -2.3015387]])

Vì vậy, chúng tôi đã sử dụng tham số size với size = (2, 3) . Điều này đã tạo ra mảng Numpy 2 chiều với 6 giá trị.

Mảng đầu ra này có 2 hàng và 3 cột. Ở đây, “2” trong bộ dữ liệu đầu vào chỉ định số hàng và “3” chỉ định số cột.

Trong ví dụ này, chúng tôi đã sử dụng tham số size để tạo mảng 2 chiều. Nhưng lưu ý rằng bạn có thể sử dụng tham số size để tạo mảng có hình dạng kích thước cao hơn.

Ví dụ 4: Tạo các giá trị được phân phối chuẩn với giá trị trung bình cụ thể

Bây giờ, hãy tạo các giá trị được phân phối chuẩn với một giá trị trung bình cụ thể. Để thực hiện việc này, chúng tôi sẽ sử dụng tham số loc .

Nhớ lại ở phần trước trong hướng dẫn rằng tham số loc kiểm soát giá trị trung bình của phân phối chuẩn mà từ đó hàm vẽ các số.

Ở đây, chúng tôi ' sẽ đặt giá trị trung bình của dữ liệu thành 50 với cú pháp loc = 50 .

np.random.seed (42)
np.random.normal (size = 1000, loc = 50)

Mảng đầy đủ các giá trị quá lớn để hiển thị ở đây, nhưng đây là một số giá trị đầu tiên của đầu ra:

mảng ([50.49671415, 49.8617357, 50.64768854, 51.52302986,
        49.76584663, 49.76586304, 51.57921282, 50.76743473,
        49.53052561, 50.54256004, 49.53658231, 49.53427025
...

Bạn có thể thấy sơ qua rằng các giá trị này gần như tập trung vào khoảng 50. Nếu bạn tính giá trị trung bình bằng cách sử dụng hàm Numpy mean, bạn sẽ thấy rằng giá trị trung bình của số quan sát là 50.

Ví dụ 5: Tạo các giá trị được phân phối chuẩn với độ lệch chuẩn cụ thể

Tiếp theo, chúng tôi sẽ tạo một mảng giá trị với độ lệch chuẩn cụ thể.

Như đã lưu ý trước đó trong bài đăng trên blog, chúng tôi có thể sửa đổi độ lệch chuẩn bằng cách sử dụng tham số scale .

Trong ví dụ này, chúng tôi sẽ tạo ra 1000 giá trị với độ lệch chuẩn là 100.

np.random.seed (42)
np.random.normal (size = 1000, scale = 100)

Và đây là một số giá trị đầu tiên của đầu ra:

mảng ([4.96714153e + 01, -1.38264301e + 01, 6.47688538e + 01,
         1,52302986e + 02, -2,34153375e + 01, -2,34136957e + 01,
         1.57921282e + 02, 7.67434729e + 01, -4.69474386e + 01
...

Lưu ý rằng chúng tôi đặt size = 1000 , vì vậy mã sẽ tạo ra 1000 giá trị. Tôi chỉ hiển thị một số giá trị đầu tiên cho ngắn gọn.

Hơi khó để xem cách dữ liệu được phân phối ở đây, nhưng chúng tôi có thể sử dụng std () phương pháp tính độ lệch chuẩn:

np.random.seed (42)
np.random.normal (size = 1000, scale = 100) .std ()

Cái nào tạo ra những thứ sau:

99,695552529463015

Nếu chúng ta làm tròn con số này lên, thì con số này là 100.

Lưu ý rằng trong ví dụ này, chúng ta chưa sử dụng tham số loc . Hãy nhớ rằng theo mặc định, tham số loc được đặt thành loc = 0 , do đó, theo mặc định, dữ liệu này tập trung xung quanh 0. Chúng tôi cũng có thể sửa đổi tham số loc tại đây, nhưng vì đơn giản, tôi đã để nó ở chế độ mặc định.

Ví dụ 6: Ví dụ kết hợp rằng sử dụng các tham số loc, scale và size trong np.random.normal

Hãy làm thêm một ví dụ nữa để ghép tất cả các phần lại với nhau.

Ở đây, chúng ta sẽ tạo một mảng của các giá trị có giá trị trung bình là 50 và độ lệch chuẩn là 100.

np.random.seed (42)
np.random.normal (size = 1000, loc = 50, scale = 100)

Tôi sẽ không hiển thị đầu ra của thao tác này…. Tôi sẽ để bạn tự chạy.

Chúng ta hãy thảo luận nhanh về mã. Nếu bạn đã đọc các ví dụ trước trong hướng dẫn này, bạn sẽ hiểu điều này.

Chúng tôi đang xác định giá trị trung bình của dữ liệu bằng tham số loc . Giá trị trung bình của dữ liệu được đặt thành 50 với loc = 50 .

Chúng tôi đang xác định độ lệch chuẩn của dữ liệu bằng tham số scale . Chúng tôi đã thực hiện điều đó với mã scale = 100 .

size = 1000 cho biết rằng chúng tôi đang tạo một mảng Numpy với 1000 giá trị .

Câu hỏi thường gặp về np.random.normal

Hiện tại mà bạn đã tìm hiểu về np.random.normal và xem một số ví dụ, hãy xem lại một số câu hỏi thường gặp về hàm.

Câu hỏi thường gặp:

Câu hỏi 1: Sự khác biệt giữa np.random.normal và np.random.randn

Bạn có thể đã thấy một hàm khác để tạo dữ liệu được phân phối bình thường trong Python, được gọi là np.random.randn.

Hàm np.random.randn có liên quan đến np.random.normal, nhưng ở đó là một số khác biệt.

Cũng giống như np.random.normal, hàm np.random.randn tạo ra các số được lấy từ phân phối chuẩn.

Điểm khác biệt chính là np.random.randn là giống như một trường hợp đặc biệt của np.random.normal. np.random.randn hoạt động giống như np.random.normal với loc = 0 scale = 1 .

Vì vậy, mã này:

np.random.seed (1)
np.random.normal (loc = 0, scale = 1, size = (3,3))

Hoạt động hiệu quả giống như mã này:

np.random.seed (1)
np.random.randn (3, 3)

Nói cách khác, np.random.randn là một hàm đặc biệt tạo dữ liệu từ phân phối "chuẩn bình thường".

Nếu bạn có câu hỏi khác, hãy để lại câu hỏi của bạn trong phần nhận xét

Có điều gì đó mà tôi đã bỏ sót ở đây không?

Bạn vẫn còn nhầm lẫn về điều gì đó cụ thể về bình thường ngẫu nhiên Numpy?

Nếu vậy, hãy để lại câu hỏi của bạn hoặc bình luận trong phần nhận xét ở cuối trang.

Nếu bạn muốn học khoa học dữ liệu bằng Python, hãy học Numpy

Vậy là xong. Bạn có thể sử dụng hàm Numpy ngẫu nhiên bình thường để tạo dữ liệu được phân phối bình thường trong Python.

Nhưng nếu bạn thực sự muốn thành thạo phân tích và khoa học dữ liệu trong Python, bạn cần tìm hiểu thêm về Numpy.

Hàm np.random.normal chỉ là một phần của bộ công cụ lớn hơn nhiều để thao tác dữ liệu trong Python.

Đã nói rằng, nếu bạn muốn tìm hiểu thêm, bạn có thể xem các hướng dẫn Numpy khác của chúng tôi về những thứ như:

Và hơn thế nữa…

Để biết thêm các hướng dẫn về khoa học dữ liệu Python, hãy đăng ký danh sách email của chúng tôi

Mặc dù vậy, rộng hơn , nếu bạn muốn tìm hiểu khoa học dữ liệu bằng Python, bạn nên đăng ký danh sách email của chúng tôi.

Tại Sharp Sight, chúng tôi thường xuyên đăng các bài hướng dẫn về nhiều chủ đề khoa học dữ liệu. Đặc biệt, chúng tôi thường xuyên xuất bản các hướng dẫn về Numpy.

Nếu bạn đăng ký danh sách email của chúng tôi, chúng tôi sẽ gửi trực tiếp các hướng dẫn về khoa học dữ liệu Python đến hộp thư đến của bạn.

Bạn sẽ nhận được hướng dẫn miễn phí về:

  • Numpy
  • Matplotlib
  • Gấu trúc
  • Cơ sở Python
  • Học Scikit < / li>
  • Học máy
  • Học sâu
  • … và hơn thế nữa.

Bạn muốn tìm hiểu khoa học dữ liệu bằng Python? Đăng ký ngay bây giờ.

Đăng ký các hướng dẫn về khoa học dữ liệu MIỄN PHÍ

Nếu bạn muốn thành thạo khoa học dữ liệu nhanh chóng, hãy đăng ký danh sách email của chúng tôi.

Khi bạn đăng ký, bạn sẽ nhận được hướng dẫn MIỄN PHÍ hàng tuần về cách thực hiện khoa học dữ liệu bằng R và Python.

Kiểm tra hộp thư đến email để xác nhận đăng ký của bạn ...


Xem thêm những thông tin liên quan đến chủ đề phân phối chuẩn ngẫu nhiên numpy

Lý thuyết các quy luật phân phối xác suất thông dụng | Quy luật phân phối chuẩn | Phần 3

  • Tác giả: HÀ CHÍ CÔNG
  • Ngày đăng: 2020-04-20
  • Đánh giá: 4 ⭐ ( 1262 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: toán cao cấp và toán kinh tế

Tạo số ngẫu nhiên với phân phối (số) nhất định

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 1098 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] scipy.stats.rv_discretecó thể là những gì bạn muốn. Bạn có thể cung cấp xác suất của bạn…

Xác suất và Thống kê với NumPy

  • Tác giả: freetuts.net
  • Đánh giá: 4 ⭐ ( 3645 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NumPy hỗ trợ khá nhiều hàm hỗ trợ thống kê cũng như xác suất, và trong bài này chúng ta sẽ tìm hiểu những hàm dùng để tính toán thống kê trong numpy

Phân phối dữ liệu ngẫu nhiêu trong Numpy

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 5 ⭐ ( 5903 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phân phối dữ liệu ngẫu nhiêu trong Numpy - Lập Trình Từ Đầu 2 NumPy Random

3.1. Khởi tạo một mảng trên numpy — Deep AI KhanhBlog

  • Tác giả: phamdinhkhanh.github.io
  • Đánh giá: 5 ⭐ ( 1141 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Bài 4: Phân phối chuẩn

  • Tác giả: hocz.net
  • Đánh giá: 5 ⭐ ( 4368 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đại lượng ngẫu nhiên liên tục X nhận giá trị trong khoảng (( - infty ; + infty )) được gọi là có phân phối chuẩn nếu hàm mật độ xác suất của nó có dạng:

Xác suất và Thống kê với NumPy - Freetuts

  • Tác giả: hoctapsgk.com
  • Đánh giá: 4 ⭐ ( 9336 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NumPy hỗ trợ khá nhiều hàm hỗ trợ thống kê cũng như xác suất, và trong bài này chúng ta sẽ tìm hiểu những hàm dùng để tính toán thống kê trong numpy

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  HTML là gì? Giải thích khái niệm cơ bản về ngôn ngữ đánh dấu siêu văn bản - mã hóa html là gì

By ads_php