padの使い方 (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 符号化法
線形補間
配列に番号をつける

公開日:2019/1/11         

■説明
padは配列の端に数値を加える関数で、パディング(padding)処理といいます。 数値を加える方法としてappendもありますが、こちらの方が便利な場合があります。

■具体例
以下はnumpyを使用する際に必須の記載です。

import numpy as np


<1次元配列の場合>

a = np.array([1,2,3,])

b = np.pad(a,[2,3]) # 配列の前に0を2個、後ろに0を3個加える
print(b)

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

b = np.pad(a,[2,3] , constant_values=(5,6)) # 配列の前に5を2個、後ろに6を3個加える
print(b)

    → array([5, 5, 1, 2, 3, 6, 6, 6])

b = np.pad(a,[2,3],'edge') #端と同じ数値を加える
print(b)

    → array([1, 1, 1, 2, 3, 3, 3, 3])


<2次元配列の場合>

a = np.array([[1,2,3],[4,5,6]])

b = np.pad(a , (1,2)) #配列の上と前に1つ、下と左に2つ0を加える
print(b)

    → array([[0, 0, 0, 0, 0, 0],
                [0, 1, 2, 3, 0, 0],
                [0, 4, 5, 6, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]])


b = np.pad(a , [(0,1),(2,3)]) #配列の上に0個、下に1つ、前(左)に2つ、後ろ(右)に3つ加える。
print(b)

    →array([[0, 0, 1, 2, 3, 0, 0, 0],
                [0, 0, 4, 5, 6, 0, 0, 0],
                [0, 0, 0, 0, 0, 0, 0, 0]])


<n次元配列の場合①>

a=np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print(a)

    → array([[[1, 2],
                [3, 4]],

                [[5, 6],
                [7, 8]]])


b = np.pad(a , [(1,1),(2,3),(1,2)]) #配列の前後が(1,1)、配列の中の上下が(2,3)、配列の中の前後が(1,2)
print(b)

    → array([[[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],

                [[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 1, 2, 0, 0],
                [0, 3, 4, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 5, 6, 0, 0],
                [0, 7, 8, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]]])


<n次元配列の場合②>

a=np.array([[[1,2],[3,4]],[[5,6],[7,8]]]
a=a.reshape(2,2,2,1)
print(a)

    → array([[[[1],
                [2]],

                [[3],
                [4]]],


                [[[5],
                [6]],

                [[7],
                [8]]]])


b = np.pad(a , [(1,0),(0,1),(1,1),(2,3)])
print(b)

    → array([[[[0, 0, 0, 0, 0, 0], #3つの配列とも、(1,0)の1の部分,
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]]],


                [[[0, 0, 0, 0, 0, 0], #上下が(1,1)、前後が(2,3)
                [0, 0, 1, 0, 0, 0],
                [0, 0, 2, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0],
                [0, 0, 3, 0, 0, 0],
                [0, 0, 4, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0], #(0,1)の1の部分
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]]],


                [[[0, 0, 0, 0, 0, 0],
                [0, 0, 5, 0, 0, 0],
                [0, 0, 6, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0],
                [0, 0, 7, 0, 0, 0],
                [0, 0, 8, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]],

                [[0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]]]])









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

関連記事一覧



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 符号化法
線形補間
配列に番号をつける