Files
Numpy_learning/random.ipynb
2022-11-05 15:18:14 +08:00

231 lines
7.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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不包含1dn表示各个维度返回值为指定维度的array\n",
" - rand(0):表示随机产生一个空数组。\n",
" - rand(n):表示随机产生一个一维的,每个元素在[0,1)之间的n个数字的数组。\n",
" - rand(m,n)表示随机产生一个m行n列的二维数组。\n",
" - rand(d0,d1,…,dn):表示随机生成一个$d0×d1×\\cdots×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为标准差的正态分布记为N01。\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没有填写时默认生成随机数的范围是[0low)\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. \n",
"\n",
"4. numpy.random.rand()\n",
"均匀分布\n",
"范围 [0, 1)\n",
"\n",
"5. numpy.random.normal(loc=mu, scale=sigma, size)\n",
"正态分布\n",
"mu均值\n",
"sigma标准差\n",
"size数据shape默认一个值"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 0 0 0] \n",
"\n",
"[[ 2 1 0]\n",
" [-2 0 0]] \n",
"\n",
"0.9888926077885405 \n",
"\n",
"[0.32897483] \n",
"\n",
"[0.96680953 0.76946094] \n",
"\n",
"[[0.0936316 0.2776172 0.16938396]\n",
" [0.21494328 0.26245945 0.22463559]] \n",
"\n",
"[0.36292738 0.51118156 0.35250669] \n",
"\n",
"[[ 0.07101816 0.1111697 -0.89099377]] \n",
"\n"
]
}
],
"source": [
"y1 = np.random.randint(1,size=4)\n",
"print(y1,\"\\n\") #返回[01)之间的整数只有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\")\n",
"\n",
"z5 = np.random.rand(3) # 生成1×3的数组\n",
"print(z5,\"\\n\")\n",
"\n",
"z6 = np.random.normal(0,1,(1,3))\n",
"print(z6,\"\\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
}