211 lines
6.8 KiB
Plaintext
211 lines
6.8 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# numpy.random.RandomState()函数用法\n",
|
||
"\n",
|
||
"1. 使用numpy.random.RandomState(1).uniform(1,2,(3,4))函数生成一个3行4列的数组,其中每个元素都是在[1,2]区间内<font color=red>均匀分布</font>的随机数\n",
|
||
"这里 “1” 为随机数种子,只要随机数种子seed相同,产生的随机数系列就相同。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"RandomState(MT19937) \n",
|
||
"\n",
|
||
"[[1.417022 1.72032449 1.00011437 1.30233257]\n",
|
||
" [1.14675589 1.09233859 1.18626021 1.34556073]\n",
|
||
" [1.39676747 1.53881673 1.41919451 1.6852195 ]]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"rdm = np.random.RandomState(1) # 定义一个随机数种子\n",
|
||
"print(rdm,\"\\n\")\n",
|
||
"a = rdm.uniform(1,2,(3,4)) # 产生一个3行4列的数组,其中每个元素都是在[1,2]区间内均匀分布的随机数\n",
|
||
"print(a)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"2. 使用numpy.random.RandomState(1).rand(d0,d1,…,dn)函数生成一个给定维度的数组,其中每个元素在[0,1)之间(包含0,不包含1),dn表示各个维度,返回值为指定维度的array\n",
|
||
" - rand(0):表示随机产生一个空数组。\n",
|
||
" - rand(n):表示随机产生一个一维的,每个元素在[0,1)之间的n个数字的数组。\n",
|
||
" - rand(m,n):表示随机产生一个m行n列的二维数组。\n",
|
||
" - rand(d0,d1,…,dn):表示随机生成一个$d 0 × d 1 × ⋯ × d n d0×d1×\\cdots×dnd0×d1×⋯×dn$维度的数组。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[] \n",
|
||
"\n",
|
||
"[0.90340192 0.1374747 0.13927635] \n",
|
||
"\n",
|
||
"[[0.80739129 0.39767684]] \n",
|
||
"\n",
|
||
"[[[0.1653542 0.92750858]\n",
|
||
" [0.34776586 0.7508121 ]\n",
|
||
" [0.72599799 0.88330609]\n",
|
||
" [0.62367221 0.75094243]]\n",
|
||
"\n",
|
||
" [[0.34889834 0.26992789]\n",
|
||
" [0.89588622 0.42809119]\n",
|
||
" [0.96484005 0.6634415 ]\n",
|
||
" [0.62169572 0.11474597]]\n",
|
||
"\n",
|
||
" [[0.94948926 0.44991213]\n",
|
||
" [0.57838961 0.4081368 ]\n",
|
||
" [0.23702698 0.90337952]\n",
|
||
" [0.57367949 0.00287033]]] \n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"a = rdm.rand(0) #生成一个空数组\n",
|
||
"b = rdm.rand(3) # 生成一个一维的,每个元素在[0,1)之间的3个数字的数组\n",
|
||
"c = rdm.rand(1,2) # 随机产生一个1行2列的,每个元素在[0,1)之间的二维数组\n",
|
||
"d = rdm.rand(3,4,2) # 生成一个3×4×2维度的,每个元素在[0,1)之间的三维数组\n",
|
||
"print(a,\"\\n\")\n",
|
||
"print(b,\"\\n\")\n",
|
||
"print(c,\"\\n\")\n",
|
||
"print(d,\"\\n\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
" ## 基于 numpy.random.RandomState(int).rand(d0,d1,…,dn) 与基于numpy.random.rand(d0,d1,…,dn),生成随机数组的区别\n",
|
||
" 使用RandomState(int)可以自定义随机数种子,以保证每次执行代码,生成的数组都相同。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# numpy里random总结:\n",
|
||
"\n",
|
||
"1. np.random.randn()\n",
|
||
"语法: numpy.random.randn(d0,d1,…,dn)\n",
|
||
"功能: 用法同np.random.rand()一样,只是服从正态分布。用法同上。\n",
|
||
"说明:\n",
|
||
"标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。\n",
|
||
"randn函数返回一个或一组样本,具有标准正态分布。\n",
|
||
"dn表格每个维度\n",
|
||
"返回值为指定维度的array\n",
|
||
"\n",
|
||
"2. np.random.randint()\n",
|
||
"语法: numpy.random.randint(low, high=None, size=None, dtype=’l’)\n",
|
||
"功能: 通过low来指定起点,通过high来指定终点,通过size参数来指定数组的维度,通过dtype来确定类型。\n",
|
||
"说明:\n",
|
||
"返回值为随机整数,范围区间为[low,high),包含low,不包含high\n",
|
||
"参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int\n",
|
||
"high没有填写时,默认生成随机数的范围是[0,low)\n",
|
||
"\n",
|
||
"3. np.random.random(size=None)\n",
|
||
"语法: numpy.random.random(size=None)\n",
|
||
"功能: 生成[0,1)之间的浮点数,通过size参数来指定维数。\n",
|
||
"说明:\n",
|
||
"size : int or tuple of ints, optional.\n",
|
||
"Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn. Default is None, in which case a single value is returned. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0 0 0 0] \n",
|
||
"\n",
|
||
"[[ 0 -2 0]\n",
|
||
" [ 1 -1 -1]] \n",
|
||
"\n",
|
||
"0.0940234518052504 \n",
|
||
"\n",
|
||
"[0.58264778] \n",
|
||
"\n",
|
||
"[0.19358132 0.3565561 ] \n",
|
||
"\n",
|
||
"[[0.32759701 0.74016873 0.83999783]\n",
|
||
" [0.62572959 0.13477642 0.86937912]] \n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"y1 = np.random.randint(1,size=4)\n",
|
||
"print(y1,\"\\n\") #返回[0,1)之间的整数,只有0\n",
|
||
"y2 = np.random.randint(-2,3,size=(2,3))\n",
|
||
"print(y2,\"\\n\") #输出为每个元素在[-2,3)之间的整数,维度为2×3的数组\n",
|
||
"\n",
|
||
"z1 = np.random.random() #生成单个数字\n",
|
||
"print(z1,\"\\n\")\n",
|
||
"z2 = np.random.random(1) #生成一维的数组\n",
|
||
"print(z2,\"\\n\")\n",
|
||
"z3 = np.random.random(2) #生成1×2的数组\n",
|
||
"print(z3,\"\\n\")\n",
|
||
"z4 = np.random.random((2,3)) #生成一个2行3列的数组\n",
|
||
"print(z4,\"\\n\")"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3.9.13 ('gym')",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.9.13"
|
||
},
|
||
"orig_nbformat": 4,
|
||
"vscode": {
|
||
"interpreter": {
|
||
"hash": "eb62451c918ef6a4174992a3510c06ea27ba0bc2fc5ee7a9f470b6f52b0b170f"
|
||
}
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|