Python 以统一的方式缩放值?
我有一个数字数组,可以转换成百分比(范围[0..1]中的值)。然后我把它转换成灰色 例如:Python 以统一的方式缩放值?,python,numpy,scale,uniform,Python,Numpy,Scale,Uniform,我有一个数字数组,可以转换成百分比(范围[0..1]中的值)。然后我把它转换成灰色 例如: percentage = nums/float(nums.max()) 问题是,大多数值都是小数值和几个大数值。这导致大多数%大约为0.01。 结果是,这将转换为~~白色,在打印时不可见。 顺便说一句,我必须保留所有的值 我试图缩小异常值的比例,但即使这样也无济于事;( 这样做的目的是将异常值缩小到平均值的2std 我想我需要的是某种“逐步”函数,它将值分组,使它们均匀缩放 在0..1范围内,使每个点
percentage = nums/float(nums.max())
问题是,大多数值都是小数值和几个大数值。这导致大多数%大约为0.01。
结果是,这将转换为~~白色,在打印时不可见。
顺便说一句,我必须保留所有的值
我试图缩小异常值的比例,但即使这样也无济于事;(
这样做的目的是将异常值缩小到平均值的2std
我想我需要的是某种“逐步”函数,它将值分组,使它们均匀缩放
在0..1范围内,使每个点接收可见颜色,但仍保持一些对比度,以便区分值
PS>可能是,范围必须在0.1到1之间
=====
到目前为止,这是某种解决方案:
c += 0.15 * (1-c)
考虑到通常的照片编辑,是否可以将一些值截断?然后,通常的排序可能会有所帮助,如
highlights=np.sort(nums)[-xyz:]
只需将这些值设置为下一个较小的值,即可设置为白色
当然,这可能是对数据的严重操纵,但这是,当你调整颜色曲线时,你通常在GIMP或类似的照片处理软件中做的事情。因此,如果这些离群点像不规则的像素,实际上你对中间的灰度值感兴趣,这可能是有帮助的。
我希望,我没弄错你的兴趣,
lepakk到目前为止,这是最好的解决方案:
c += 0.15 * (1-c)
c+=0.15*(1-c)也许你应该阅读一下它是否有效,你能接受答案并结束这个问题吗?如果你找到了另一个更适合你需要的解决方案,我们也很感激,如果你能在这里单独回答。谢谢。