From a6673156522c62cd415abe5fe01cf31eb4ee0867 Mon Sep 17 00:00:00 2001 From: FANBOYANG Date: Fri, 4 Nov 2022 15:33:31 +0800 Subject: [PATCH] create random --- random.ipynb | 210 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 random.ipynb diff --git a/random.ipynb b/random.ipynb new file mode 100644 index 0000000..f089f15 --- /dev/null +++ b/random.ipynb @@ -0,0 +1,210 @@ +{ + "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]区间内均匀分布的随机数\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 +}