检查一个值是否大于另一个值,如果不替换为较小的值,则idl to python

2024-10-01 02:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在将一些代码从IDL转换到python,这里显示了一个函数:

for i=0l,dim[0]-1 do begin
     for j=0l,dim[1]-1 do begin
        y = reform(image[i,j,0:nchannels-1]) > 0

这实际上是一个包含每个通道中所有像素值的列表。改革去掉了退化维度,所以每个通道只有一个值列表。然后,在idl中,>;符号不同于写入gt。如果使用符号,它表示检查列表中的值是否大于0,如果不大于0,则仅将0放在那里。你知道吗

我知道我可以写一个循环来实现这一点,但我想知道是否有人有任何漂亮的python技巧可以在一行中实现这一点。你知道吗

谢谢!你知道吗


Tags: 函数代码imagegt列表for符号像素
1条回答
网友
1楼 · 发布于 2024-10-01 02:22:06

我想你要找的是numpy.clip文件(). 你知道吗

import numpy as np
a = np.array([-3,5,9,1,-7,8,-8,-8,1,3,9])
a.clip(0)
# returns: array([0, 5, 9, 1, 0, 8, 0, 0, 1, 3, 9])

它也适用于您的三维阵列。你知道吗

相关问题 更多 >