科学の箱

科学・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

jupyterで目的のディレクトリから実行する方法

AnacondaをインストールするとJupyter Notebookを実行するショートカットが作成される。これをクリックするとJupyter Notebookは起動できるわけだが、残念ながら必要なファ …

no image

automated the boring – day8

https://automatetheboringstuff.com/chapter15/ さてプログラムを実行しているときに案外出てくる要件が時間計測。 例えばアルゴリズム間でパフォーマンスを比較す …

no image

kaggle Titanic Tutorial – 6

さて、今回は年齢について検証する。まずこれまでは中央値を使っていたわけだ。これをもともと年齢分布と中央値を使って更新した後の年齢分布を比較する。 import numpy as nm import p …

no image

Python + Slack Bot – 1

こちらのページを参考にしてslack botを作成する。 https://www.fullstackpython.com/blog/build-first-slack-bot-python.html …

no image

K近傍法でデータを分析

K近傍法の手順 データ読み込み EDA スケーリング K選択前処理 モデル評価 K選択 モデル構築   K近傍法でデータを分析する際にはseabornのpairplotが役に立つ df = …

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

side bar top



アーカイブ

カテゴリー