2
私は画像を表す配列があります。私は各列の特定の行の下にあるすべてのインデックスをゼロにしたい(外部データに基づいて)。私はこれを行うためのデータをスライス/ブロードキャスト/アレンジする方法を理解していないようです。numpyで2次元配列の行スライスをゼロにする方法は?
def first_nonzero(arr, axis, invalid_val=-1):
mask = arr!=0
return np.where(mask.any(axis=axis), mask.argmax(axis=axis), invalid_val)
# Find first non-zero pixels in a processed image
# Note, I might have my axes switched here... I'm not sure.
rows_to_zero = first_nonzero(processed_image, 0, processed_image.shape[1])
# zero out data in image below the rows found
# This is the part I'm stuck on.
image[:, :rows_to_zero, :] = 0 # How can I slice along an array of indexes?
# Or in plain python, I'm trying to do this:
for x in range(image.shape[0]):
for y in range(rows_to_zero, image.shape[1]):
image[x,y] = 0
おかげで、これはそんなに助けました!そして、あなたは正しかった、私はfirst_nonzero(image、0、image.shape [0] -1) – Jordan