我有一个类型为np.int64的numpy数组,我正在尝试应用公式。
假设数组是名为total_img
的二维数组,其尺寸为400 X 300像素。对于每个像素,我想计算以下公式。 px = 255*(min - px)/(min - max)
。我希望这些重新调整的像素始终存储在total_img
中。如何使用numpy数组有效地实现它?
注意,min
和max
只是第1百分位数和第99百分位数值,实际上存储为浮点数。我应该将它们转换为整数以获得更好的准确性(请记住total_img的类型为np.int64 - 不会发生溢出)。 min也很可能是负面的。
我正在使用:
for row in total_img:
for px in row:
px = 255*(min-px)/(min - max)
答案 0 :(得分:3)
total_img = 255*(min - total_img)/(min - max)
您实际上只是插入total_img
而不是px
,并且它按元素执行操作。如果您想将结果存储到原始total_img
而不是替换它,您可以切片分配:
total_img[:] = 255*(min - total_img)/(min - max)
但请注意,这实际上并没有节省任何时间或内存。
答案 1 :(得分:0)
我相信你可以直接这样做:
total_img = 255*(min-total_img)/(min - max)