randomの使い方(numpy)



Python
Pythonとは
基本的な使い方
IDLE
Jupyter Notebook
Markdown
コマンドプロンプトで実行
仮想環境の構築
仮想環境でIDLEを実行
ライブラリのインストール
pipの使い方
numpy , matplotlib等
graphviz
pytorch
Mecab
Pythonの関数:一覧
共通関数
append , extend
class
copy
csv.reader
csv.writer
def , return
dict , defaultdict
enumerate
exit
for
if
import
in
input
lambda
len
list
min/max
OrderedDict
open/close
os
pickle
print
range
re.split
read/readline
round/floor/ceil
split
sys.argv
time
while
write
zip
・特殊メソッド
 ・__name__
 ・__iter__ , __next__
正規表現、メタ文字
データの型の種類
四則演算 (+ , - , * , /)
コメントアウト (# , ''')
numpy
append
arange
argmax/argmin
array
asfarray
astype , dtype
digitize
dot
hstack/vstack
linalg.solve
linspace
mean
meshgrid
mgrid
ndim
ndmin
pad
poly1d
polyfit
prod
random
reshape
savetxt/loadtxt
shape
std
transpose
where
zeros/zeros_like
scipy
expit
imread
interpolate
matplotlib
imshow
figure
pcolormesh
plot
scatter
scikit-learn
GaussianNB
KMeans
KNeighborsClassifier
SVC
tree
keras
chainer
chainerrl
pytorch
BCELoss , MSELoss
Embedding
device
Sequential
Dataset, Dataloader
RNN, LSTM
OpenAI gym
Blackjack-v0
CartPole-v0
tkinter
frame, grid
画像表示
画像を切り取り表示
画像を保存
目的別
ステップ関数
1 of K 符号化法
線形補間
配列に番号をつける

公開日:2018/7/8  最終更新日:2019/11/30        

■説明
ランダムな数を生成します。

■具体例
以下は各具体例で共通で必要な記載です。

>> import numpy as np

<random.rand>
各成分の値が0~1の範囲でランダムな数を作成します。

例①
>>np.random.rand(5) #5個ランダムの値を生成

  array([0.10864656, 0.32520454, 0.46551416, 0.44450598, 0.16461907])

例②
>> np.random.rand(3,3) #3行3列の行列

  array([[0.14877569, 0.03200445, 0.98932267],
     [0.21877784, 0.74047657, 0.04841534],
     [0.78025066, 0.82295066, 0.70403669]])

例③
>>np.random.rand(3,3) -0.5  #オフセットする場合

  array([[-0.47116425, 0.21120087, -0.24673171],
     [-0.32195753, 0.48917386, 0.32247191],
     [-0.3912686 , -0.02059287, 0.08083662]])


<random.uniform>
指定した範囲の中からランダムな数を作成します。

>>np.random.uniform(0,10,(2,2)) #0から10の間でランダムの値を2x2で作成

array([[5.68639461, 8.83055132],
   [0.28637671, 5.42227475]])


<random.randn>
平均0、σ=1の標準正規分布に従ったランダムの数を作成します。

>>np.random.randn(5)

  array([ 1.58020171, -0.30615959, -1.50085146, 0.54306113, -0.19888497])


<random.normal>
正規分布に従ったランダムな数を作成します。randnと異なるのは、平均と標準偏差σを設定できる事です。

>>np.random.normal(0,1,10) #平均値0、標準偏差1のランダムの値を10個生成

  array([ 0.60121767, 0.72857644, 0.07093154, -1.03274699, -0.01351853,
     -0.53342945, -0.05761539, -0.99177391, -1.19949435, 0.22845349])


上記は2行5列の行列になっている訳ではなく、単に改行されているだけです。2行5列にしたい場合は以下。

>> np.random.normal(0,1,(2,5)) #平均値0、標準偏差1のランダムの値を2x5の行列で生成

  array([[-1.08808109, 1.74178225, 0.69421781, -0.57640934, -0.34761778],
     [ 2.69510603, -2.06700082, 0.07855081, -0.03940778, 0.12391313]])



<random.choice>
ランダムに数を選択します。

例①
>> np.random.choice([0,1,3]) #配列の中にある数字を1つ選択する。

  3

例②
>> a = [0, 1, 2, 3, 4]
>> np.random.choice(a,4) #リストの中からランダムに値を4つ選択する。

  array([4, 2, 0, 2]) #選択する値は重複する場合もある

例③
>> np.random.choice(10,5) #0から9までの中でランダムに値を5つ選択する。

  array([3, 6, 2, 1, 0])

例④
>> a = [0, 1, 2, 3, 4]
>> prob = [0.6, 0.1, 0.1, 0.1, 0.1]
  #aの各値を選択する確率を指定。合計値を1にすること。aと同じ次元数にすること。

>> np.random.choice(a,10,p=prob) #リストの中からランダムに値を10つ選択する。

  array([2, 3, 3, 0, 1, 0, 0, 0, 0, 0]) #0が出る確率が最も高い


<random.seed>
乱数のシード(乱数生成用の初期パラメータ)を設定します。乱数を用いたシミュレーションなどで乱数の再現性が求められる場合などに用いられます。 seed()の中に入る数値は0以外でもよく、適当に設定可能です。

>> np.random.seed(0)
>> np.random.rand(5)

  array([0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548 ])










サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



Python
Pythonとは
基本的な使い方
IDLE
Jupyter Notebook
Markdown
コマンドプロンプトで実行
仮想環境の構築
仮想環境でIDLEを実行
ライブラリのインストール
pipの使い方
numpy , matplotlib等
graphviz
pytorch
Mecab
Pythonの関数:一覧
共通関数
append , extend
class
copy
csv.reader
csv.writer
def , return
dict , defaultdict
enumerate
exit
for
if
import
in
input
lambda
len
list
min/max
OrderedDict
open/close
os
pickle
print
range
re.split
read/readline
round/floor/ceil
split
sys.argv
time
while
write
zip
・特殊メソッド
 ・__name__
 ・__iter__ , __next__
正規表現、メタ文字
データの型の種類
四則演算 (+ , - , * , /)
コメントアウト (# , ''')
numpy
append
arange
argmax/argmin
array
asfarray
astype , dtype
digitize
dot
hstack/vstack
linalg.solve
linspace
mean
meshgrid
mgrid
ndim
ndmin
pad
poly1d
polyfit
prod
random
reshape
savetxt/loadtxt
shape
std
transpose
where
zeros/zeros_like
scipy
expit
imread
interpolate
matplotlib
imshow
figure
pcolormesh
plot
scatter
scikit-learn
GaussianNB
KMeans
KNeighborsClassifier
SVC
tree
keras
chainer
chainerrl
pytorch
BCELoss , MSELoss
Embedding
device
Sequential
Dataset, Dataloader
RNN, LSTM
OpenAI gym
Blackjack-v0
CartPole-v0
tkinter
frame, grid
画像表示
画像を切り取り表示
画像を保存
目的別
ステップ関数
1 of K 符号化法
線形補間
配列に番号をつける