Python mảng 2 chiều ngẫu nhiên

Như chúng ta đã biết, Numpy là một thư viện Python nổi tiếng để hỗ trợ tính toán ma trận trong Python, cùng với một bộ sưu tập lớn các hàm toán học cấp cao để hoạt động trên các mảng vectơ, ma trận và tensor [1]. Matlab là ngôn ngữ lập trình và môi trường tính toán số, hỗ trợ tính toán ma trận, vẽ đồ thị hàm và dữ liệu, thực hiện thuật toán, tạo giao diện và giao tiếp với các chương trình viết bằng ngôn ngữ khác [2]

bảng trên cùng. Biểu trưng numpy [3]; . Logo matlab [4]

Một đặc điểm chung của Numpy và Matlab là chúng được sử dụng rộng rãi trong tính toán ma trận và tính toán số. Tuy nhiên, chúng không hoàn toàn giống nhau. Trong bài đăng này, chúng tôi sẽ thảo luận về cách tạo số và mảng ngẫu nhiên trong cả Matlab và Numpy. Cụ thể, chúng tôi so sánh giữa Matlab và Numpy để tái tạo các số và mảng ngẫu nhiên giống nhau

Số ngẫu nhiên và mảng

Cả Matlab và Numpy đều có thể tạo số và mảng ngẫu nhiên theo một lệnh nhất định. Có hai khái niệm quan trọng

  • Phân phối số ngẫu nhiên
  • Hạt giống ngẫu nhiên

Đối với phân phối số ngẫu nhiên, chúng ta thường tính đến phân phối đều và phân phối chuẩn [Gaussian]. Trong Numpy, chúng ta có thể sử dụng

sample = rand[1, 2]
4 để tạo các số ngẫu nhiên được phân phối đồng đều. Trong Matlab, chúng ta có thể sử dụng
sample = rand[1, 2]
5 để tạo các số ngẫu nhiên phân bố đều. Dưới đây là một số ví dụ đơn giản

NumPy trong Python

import numpy as npsample = np.random.rand[2]
print[sample]

đầu ra là

[0.70573498 0.8595017 ]

matlab

sample = rand[1, 2]

đầu ra là

ans =

0.5390 0.7686

Các ví dụ trên là về các số ngẫu nhiên được phân phối đồng đều. Chúng ta có thể tạo các số ngẫu nhiên tuân theo phân phối chuẩn chuẩn

  • NumPy trong Python.
    sample = rand[1, 2]
    6
  • matlab.
    sample = rand[1, 2]
    7

Có thể sử dụng một lệnh/hàm nhất định để tạo số ngẫu nhiên theo một phân phối cụ thể, nhưng mỗi khi chúng tôi tạo lại mã của mình, số ngẫu nhiên được tạo sẽ khác. Do đó, hạt giống ngẫu nhiên là một khái niệm quan trọng khác, cho phép người ta sửa các số ngẫu nhiên trong mỗi lần

Ví dụ: mã Python sau

________số 8

sẽ tạo ra những con số ngẫu nhiên này

[0.77132064 0.02075195]

Trong Matlab

sample = rand[1, 2]
0

chúng tôi có đầu ra sau

sample = rand[1, 2]
1So sánh các hàm Rand trong Numpy và Matlab

Trong cả Numpy và Matlab, chúng có thể xử lý các tính toán của các mảng khác nhau

  • Mảng 1-D [mảng một chiều] đề cập đến vector
  • Mảng 2 chiều [mảng hai chiều] dùng để chỉ ma trận
  • Mảng 3-D [mảng ba chiều] dùng để chỉ tensor bậc ba
  • ……
  • mảng n-D [mảng n chiều] dùng để chỉ tensor bậc n

Trong phần tiếp theo, chúng tôi sẽ cố gắng tạo các số ngẫu nhiên được phân phối đồng đều trong Numpy và Matlab, tương ứng. Chúng tôi cũng sẽ cố gắng tạo các số ngẫu nhiên giống nhau trong Numpy và Matlab

Tạo mảng 1-D

Để có được các số ngẫu nhiên được phân phối đồng đều giống nhau trong Numpy và Matlab, chúng tôi đặt kích thước vectơ là 4 và hạt ngẫu nhiên là 10. Hãy để chúng tôi thử nó

Nặng nề

sample = rand[1, 2]
2

Chạy nó, chúng tôi có

sample = rand[1, 2]
3

matlab

[0.70573498 0.8595017 ]
0

Chạy nó, chúng tôi có

[0.70573498 0.8595017 ]
1

Rõ ràng là cả hai vectơ ngẫu nhiên được tạo đều giống nhau

Tạo mảng 2 chiều

Đầu tiên, chúng tôi đặt kích thước ma trận là 2 nhân 3 và hạt giống ngẫu nhiên là 10

Nặng nề

[0.70573498 0.8595017 ]
2

Chạy nó, chúng tôi có

[0.70573498 0.8595017 ]
3

matlab

[0.70573498 0.8595017 ]
4

Chạy nó, chúng tôi có

[0.70573498 0.8595017 ]
5

Các ma trận ngẫu nhiên phân phối đồng đều được tạo là giống nhau

Tạo mảng 3-D

Đầu tiên, chúng tôi đặt kích thước ma trận là 2 nhân 3 nhân 2 và hạt giống ngẫu nhiên là 10

Nặng nề

[0.70573498 0.8595017 ]
6

Chạy nó, chúng tôi có

[0.70573498 0.8595017 ]
7

matlab

[0.70573498 0.8595017 ]
8

Chạy nó, chúng tôi có

[0.70573498 0.8595017 ]
9

Các tenxơ ngẫu nhiên phân phối đồng đều được tạo là giống nhau

Tạo các số ngẫu nhiên được phân phối bình thường trong Numpy và Matlab

Ở trên, Numpy và Matlab có thể tạo các số ngẫu nhiên được phân phối đồng đều giống nhau nếu chúng ta sử dụng cùng một hạt giống ngẫu nhiên. Thật không may, vì Numpy và Matlab sử dụng các phép biến đổi khác nhau để tạo các mẫu từ phân phối chuẩn chuẩn, do đó chúng ta cần sử dụng cùng một phép biến đổi trong cả Numpy và Matlab

Trong thực tế, vẫn có thể sao chép đầu ra của hàm randn[] của Matlab giống như Numpy

Nặng nề

sample = rand[1, 2]
0

Chạy nó, chúng tôi có

sample = rand[1, 2]
1

matlab

sample = rand[1, 2]
2

Chạy nó, chúng tôi có

sample = rand[1, 2]
3

Các ma trận ngẫu nhiên phân phối chuẩn được tạo giống nhau

Người giới thiệu

[1] Numpy trên Wikipedia. https. // vi. wikipedia. tổ chức/wiki/NumPy

[2] Matlab trên Wikipedia. https. // vi. wikipedia. org/wiki/MATLAB

[3] Logo Numpy là từ https. // chung. wikimedia. org/wiki/Tệp. NumPy_logo_2020. svg

[4] Logo Matlab là từ https. //www. Google. com/url?esrc=s&q=&rct=j&sa=U&url=https. //1000logo. net/matlab-logo/&ved=2ahUKEwj24b7C7bvzAhUKoXIEHci3AdQQr4kDegQIEhAC&usg=AOvVaw2JKOiqdedKhhEEDnpm7AcW

[5] Tái tạo số ngẫu nhiên trong Matlab và Python/NumPy. Trang web GitHub. https. //github. com/jonasrauber/randn-matlab-python

[6] Có thể tạo lại randn[] của MATLAB bằng NumPy không? . // stackoverflow. com/câu hỏi/3722138/is-it-possible-to-reproducte-randn-of-matlab-with-numpy

[7] So sánh mã Matlab và Numpy sử dụng tạo số ngẫu nhiên. https. // stackoverflow. com/câu hỏi/18486241/so sánh-matlab-and-numpy-code-that-uses-random-number-generation

Chủ Đề