一、Python Numpy簡介
Python Numpy是一個基於Python語言的開源科學計算庫,其最重要的特點是提供了一種多維數組對象(ndarray),用於高效地存儲和操作大型數據集合,同時還提供了大量的數學函數庫。
在數據科學領域,隨機數非常常見,可以用來生成模擬數據、初始化模型參數、進行採樣等。而Python Numpy中提供了一系列的隨機數生成函數,可以快速、高效地生成高質量的隨機數。
二、Python Numpy隨機數生成函數
Python Numpy中的隨機數函數有兩類:一類是生成特定分布的隨機數函數,比如均勻分布、正態分布、泊松分布等;另一類是生成隨機整數的函數。
三、均勻分布
均勻分布是指在相同的區間內,各個數值出現的可能性相等,是一種最簡單的概率分布。Python Numpy中的均勻分布函數為np.random.uniform,其函數原型為:
numpy.random.uniform(low=0.0, high=1.0, size=None)
參數說明:
- low:生成的隨機數的最小值
- high:生成的隨機數的最大值
- size:生成隨機數的數目或形狀,默認為None,表示返回單個隨機數
示例代碼:
import numpy as np # 生成一個均勻分布的隨機數 random_num = np.random.uniform() print(random_num) # 生成一個均勻分布的隨機數組,形狀為(2, 3) random_arr = np.random.uniform(low=0, high=10, size=(2, 3)) print(random_arr)
四、正態分布
正態分布是自然界中非常常見的概率分布,其形態呈現鐘形曲線,在數據科學領域中也被廣泛使用。Python Numpy中的正態分布函數為np.random.normal,其函數原型為:
numpy.random.normal(loc=0.0, scale=1.0, size=None)
參數說明:
- loc:分布的均值(即期望值)
- scale:分布的標準差
- size:生成隨機數的數目或形狀,默認為None,表示返回單個隨機數
示例代碼:
import numpy as np # 生成一個正態分布的隨機數 random_num = np.random.normal() print(random_num) # 生成一個正態分布的隨機數組,形狀為(2, 3) random_arr = np.random.normal(loc=0, scale=1, size=(2, 3)) print(random_arr)
五、隨機整數
在一些數據科學領域中,需要生成隨機整數。Python Numpy提供了兩個用於生成隨機整數的函數,分別是np.random.randint和np.random.shuffle。
六、np.random.randint
np.random.randint可以生成一個指定區間內的隨機整數。其函數原型為:
numpy.random.randint(low, high=None, size=None, dtype='I')
參數說明:
- low:生成的隨機整數的最小值(包含)
- high:生成的隨機整數的最大值(不包含),默認為None,表示隨機整數的範圍為[0, low)
- size:生成隨機整數的數目或形狀,默認為None,表示返回單個隨機整數
- dtype:生成隨機整數的數據類型
示例代碼:
import numpy as np # 生成一個指定範圍[0, 10)的隨機整數 random_int = np.random.randint(10) print(random_int) # 生成一個指定範圍[0, 100)的5個隨機整數組成的一維數組 random_arr = np.random.randint(100, size=5) print(random_arr) # 生成一個指定範圍[0, 100)的(2, 3)形狀的隨機整數數組 random_arr = np.random.randint(100, size=(2, 3)) print(random_arr)
七、np.random.shuffle
np.random.shuffle可以對數組進行隨機排列,即將數組中的元素打亂。其函數原型為:
numpy.random.shuffle(x)
參數說明:
- x:要打亂的數組
示例代碼:
import numpy as np # 生成一維數組並打亂順序 arr = np.arange(10) np.random.shuffle(arr) print(arr) # 生成二維數組並打亂每一行的順序 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) np.apply_along_axis(np.random.shuffle, 1, arr) print(arr)
八、總結
Python Numpy提供了一系列的隨機數生成函數,可以方便、高效地生成高質量的隨機數。我們可以使用這些函數來生成模擬數據、初始化模型參數、進行採樣等。在具體使用時,需要根據具體需求選擇不同的隨機數函數。
示例代碼:
# 生成一個均勻分布的隨機數組,形狀為(2, 3) random_arr1 = np.random.uniform(low=0, high=1, size=(2, 3)) # 生成一個正態分布的隨機數組,形狀為(2, 3) random_arr2 = np.random.normal(loc=0, scale=1, size=(2, 3)) # 生成一個指定範圍[0, 100)的(2, 3)形狀的隨機整數數組 random_arr3 = np.random.randint(100, size=(2, 3)) print(random_arr1) print(random_arr2) print(random_arr3)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297119.html