[NumPy] 逆順ソート

[NumPy] 逆順ソート

numpy.flip()

 numpy.flip(arr, axis=None) は指定した軸 (axis) に沿って要素を逆順に並び替えます。1 次元配列を渡す場合は axis を渡す必要はありません。

# FLP-1

import numpy as np

# x = [1 2 3 4 5 6 7 8 9]
x = np.arange(1, 10)

# xの要素を逆順に並び替える
a = np.flip(x)

print(a)
[9 8 7 6 5 4 3 2 1]

 numpy.reshape() を使って x を 3 × 3 サイズに形状変更しておきます。

# FLP-2
# xを3×3の配列に形状変更
y = x.reshape(3, 3)

print(y)
[[1 2 3]
 [4 5 6]
 [7 8 9]]

 2 次元配列 y を numpy.flip() に渡すと、要素が右下から左上に並び替えられます。

# FLP-3

# yの要素を逆順に並び替える
b = np.flip(y)

print(b)
[[9 8 7]
 [6 5 4]
 [3 2 1]]

 axis=0 を指定すると、行方向の軸に沿って要素を逆順に並び替えます。

# FLP-4

# 縦軸に沿って要素を逆順に並び替える
c = np.flip(y, axis=0)

print(c)
[[7 8 9]
 [4 5 6]
 [1 2 3]]

 axis=1 なら列方向に沿って要素を逆順に並び替えます。

# FLP-5

# 横軸に沿って要素を逆順に並び替える
d = np.flip(y, axis=1)

print(d)
[[3 2 1]
 [6 5 4]
 [9 8 7]]

 

たった1秒の最強スキル パソコン仕事が10倍速くなる80の方法

新品価格
¥1,382から
(2019/8/6 17:57時点)

numpy.fliplr()

 numpy.fliplr(m) は 2 次元以上の配列 m を受け取って、行ごとに要素を逆順に並べ替えます。

# FLR

import numpy as np

# [[1 0 0]
#  [0 2 0]
#  [0 0 3]]
x = np.diag([1, 2, 3])

# 行ごとに要素を逆順に並び替える
flr = np.fliplr(x)

print(flr)
[[0 0 1]
 [0 2 0]
 [3 0 0]]

 

numpy.flipud()

 numpy.flipud(m) は 2 次元以上の配列 m を受け取って、列ごとに要素を逆順に並べ替えます。

# FUD

import numpy as np

# [[1 0 0]
#  [0 2 0]
#  [0 0 3]]
x = np.diag([1, 2, 3])

# 列ごとに要素を逆順に並び替える
fud = np.flipud(x)

print(fud)
[[0 0 3]
 [0 2 0]
 [1 0 0]]