我有一个表示图像的numpy数组。我想将每列中低于某一行的所有索引归零(基于外部数据)。我似乎不知道如何分割/广播/安排数据来做到这一点。你知道吗
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
使用^{} 创建掩码并分配-
或与反转掩码相乘:
image *= ~mask
。你知道吗示例运行到showcase掩码设置-
另外,对于每列的设置,我认为您的意思是:
如果您打算在每行的基础上进行归零,那么每行的索引将是第一个非零索引,我们称之为
idx
。所以,那就-样本运行-
相关问题 更多 >
编程相关推荐