\

Pythonでは、2次元配列や画像などで斜め線を扱う方法がいくつかあります。ここでは、その中でも特に有用な方法をいくつか紹介します。

2次元配列で斜め線を取得する

2次元配列で斜め線にあたる要素を取得するには、numpy.diag()関数を使用します。この関数は、第2引数を指定しない場合(デフォルトはk=0)は対角成分を返します。k=nとした場合、n個上の対角成分の値を返します。k=-nとした場合、-n個下の対角成分の値を返します。

import numpy as np

array = np.array([
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25],
])

b = np.diag(array)
print(b)  # [1, 7, 13, 19, 25]

b = np.diag(array, k=-2)
print(b)  # [11, 17, 23]

b = np.diag(array, k=1)
print(b)  # [2, 8, 14, 20]

しかし、この方法では、”\”方向の対角線しか取得できません。”/”方向の対角線を取得するには、numpy.fliplr()関数を使用して配列を左右反転させてからnumpy.diag()関数を使用します。

# fliplr() の効果: 配列を左右反転させる。
print(np.fliplr(array))
# [[ 5  4  3  2  1]
#  [10  9  8  7  6]
#  [15 14 13 12 11]
#  [20 19 18 17 16]
#  [25 24 23 22 21]]

# 左右反転させた配列の対角成分をとる。
b = np.diag(np.fliplr(array))
print(b)  # [5, 9, 13, 17, 21]

b = np.diag(np.fliplr(array), k=-2)
print(b)  # [15, 19, 23]

b = np.diag(np.fliplr(array), k=1)
print(b)  # [4, 8, 12, 16]

以上がPythonで斜め線を扱う基本的な方法です。これらの方法を活用すれば、2次元配列や画像などで斜め線を効率的に扱うことができます。.

投稿者 admin

コメントを残す

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