科学の箱

科学・IT・登山の話題

Python

flip, fliplr, flipudを使って配列要素を上下左右、左右、上下反転する

投稿日:

画像処理などでは要素の値を配列全体で反転したいときがある。このようなときに役に立つのがflip, fliplr, flipudである。

flipud

flipudは上下反転する。

第一パラメータには反転したい配列を渡す。結果は上下反転した配列が戻ってくる。

import numpy as np
z = np.arange(12)
z1=z.reshape(3,4)

print(z1)
# [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

print(np.flipud(z1)
[[ 8  9 10 11]
 [ 4  5  6  7]
 [ 0  1  2  3]]

 

この結果は[::-1, ::]でスライスした結果と同じである。

print(z1[::-1,])
# [[ 8  9 10 11]
 [ 4  5  6  7]
 [ 0  1  2  3]]

 

fliplr

flipudは左右反転する。

第一パラメータには反転したい配列を渡す。結果は左右反転した配列が戻ってくる。

import numpy as np
z = np.arange(12)
z1=z.reshape(3,4)

print(z1)
# [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

print(np.flipnr(z1))
#[[ 3  2  1  0]
 [ 7  6  5  4]
 [11 10  9  8]]

 

この結果は[::,::-1]でスライスしたのと同じ結果である

print(z1[::,::-1])

# [[ 3  2  1  0]
 [ 7  6  5  4]
 [11 10  9  8]]

 

flip

flipは配列の要素を上下反転する。

第一パラメータに反転したい配列を引き渡す。この結果上下反転した配列が戻ってくる。

3×4の配列を上下反転した例が以下になる。

z = np.arange(12)
z1=z.reshape(3,4)

print(z1)
# [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

print(np.flip(z1)
# [[11 10  9  8]
 [ 7  6  5  4]
 [ 3  2  1  0]]

上下・左右すべて反転しているのがわかる。

flipは配列を[::-1,::-1]でスライスしたのと同じ結果となる。

print(z1[::-1, ::-1])
# [[11, 10,  9,  8],
       [ 7,  6,  5,  4],
       [ 3,  2,  1,  0]]

 

flipは引数axisにより反転する軸を指定できる。flip(配列)はflip(配列, (0,1))と同じである。

print(np.flip(z1, (0,1)))
# [[11 10  9  8]
 [ 7  6  5  4]
 [ 3  2  1  0]]

 

flip(配列, 0)はflipud, flip(配列, 1)はfliplrと同じである。

 

メタ情報

inarticle



メタ情報

inarticle



-Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

pythonで配列に関係する型

pythonで配列に関連する型は3つある。 list array numpy.ndarray pandas.dataframe list 違っている複数のデータ型を要素として保持できる 多次元配列可能 …

no image

生成した配列をグラフで確認

生成した配列を可視化するためにはmatplotlibが利用できる。 ここでは簡単に可視化するための使い方を見てみる。 まずはnumpyとmatplolibモジュールを読み込む。以下ではnumpyはnp …

no image

Heroku + Python Day 1

Pythonでの機械学習の勉強が少し一段落したので、別の側面からPythonをさらに利用してみる。 現在はpythonを利用できるのはローカルの環境だけである。これを将来的にはインターネット上でスケジ …

no image

kaggle Titanic Tutorial – 7

さて今回はAgeを補完してから、元の分布と比べてみる。 def fill_age(row): condition = ( (d_train_g_m[‘Sex’] == row[‘Sex’]) &amp …

no image

グラフの軸を操作する

概要 ここでは以下の項目について取り扱う 軸にラベルを設定する ー xlabel, ylabel 軸の最小値、最大値を設定する ー xlim, ylim, xaxis 軸にメモリを設定する ー xti …

2019年9月
« 8月   10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

side bar top



アーカイブ

カテゴリー