randomの使い方(python 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

max,min

mean

meshgrid

mgrid

ndim

ndmin

pad

poly1d

polyfit

prod

random

reshape

savetxt/loadtxt

shape

std

transpose

where

zeros/zeros_like

scipy
expit

imread

interpolate

signal.square, sawtooth

matplotlib
imshow

figure

pcolormesh

plot

quiver

scatter

scikit-learn
GaussianNB

KMeans

KNeighborsClassifier

SVC

tree

chaospy

keras

chainer

chainerrl

pandas
データ抽出

concat

DataFrame

read_excel

pytorch
BCELoss , MSELoss

Embedding

device

Sequential

Dataset, Dataloader

RNN, LSTM

OpenAI gym
Blackjack-v0

CartPole-v0

seaborn
pairplot

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

max,min

mean

meshgrid

mgrid

ndim

ndmin

pad

poly1d

polyfit

prod

random

reshape

savetxt/loadtxt

shape

std

transpose

where

zeros/zeros_like

scipy
expit

imread

interpolate

signal.square, sawtooth

matplotlib
imshow

figure

pcolormesh

plot

quiver

scatter

scikit-learn
GaussianNB

KMeans

KNeighborsClassifier

SVC

tree

chaospy

keras

chainer

chainerrl

pandas
データ抽出

concat

DataFrame

read_excel

pytorch
BCELoss , MSELoss

Embedding

device

Sequential

Dataset, Dataloader

RNN, LSTM

OpenAI gym
Blackjack-v0

CartPole-v0

seaborn
pairplot

tkinter
frame, grid

画像表示

画像を切り取り表示

画像を保存

目的別
ステップ関数

矩形波, 三角波

1 of K 符号化法

線形補間

配列に番号をつける

ベクトル場を描く

線形回帰, 多項式回帰