ベース配列の一部分のスライスと比較用配列を
結果は各要素を比較しbool型の(true又はfalse)配列が結果として返されます。
その配列を
==
で比較します。結果は各要素を比較しbool型の(true又はfalse)配列が結果として返されます。
その配列を
.all()
メソッドですべての要素が全て一致(true)か確認して返します。#!/usr/bin/env python3
#
# 部分一致
#
import numpy as np
data = np.full((10,10), 255, 'uint8')
rep = np.zeros((3,4), 'uint8')
y = 1 # 置き換え座標y
x = 1 # 置き換え座標x
h, w =rep.shape[:2]
data[y:y+h,x:x+w] = rep
print(data)
#[[255 255 255 255 255 255 255 255 255 255]
# [255 0 0 0 0 255 255 255 255 255]
# [255 0 0 0 0 255 255 255 255 255]
# [255 0 0 0 0 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]]
result = (data[y:y+h,x:x+w] == rep)
print(result)
#[[ True True True True]
# [ True True True True]
# [ True True True True]]
print(result.all())
#True
result = (data[y+1:y+1+h,x:x+w] == rep)
print(result)
#[[ True True True True]
# [ True True True True]
# [False False False False]]
print(result.all())
#False
コメント