DolphinDB有类似numpy.clip()的函数吗?

numpy.clip()函数用于剪辑(限制)数组中的值。给定一个间隔,该间隔以外的值将被裁剪到间隔边。例如,如果指定间隔[2,6],则小于2的值将变为2,而大于6的值将变为6。

import numpy as np 
  
in_array = [1, 2, 3, 4, 5, 6, 7, 8 ] 
print ("Input array:", in_array) 
  
out_array = np.clip(in_array, a_min = 2, a_max = 6) 
print ("Output array:", out_array)

输出:

Input array: [1, 2, 3, 4, 5, 6, 7, 8]
Output array: [2 2 3 4 5 6 6 6]
请先 登录 后评论

2 个回答

wale

若是将向量 x 中指定百分比的极值掩盖,DolphinDB有winsorize函数。若百分比缩尾处理不能满足要求,可以用iif自定义函数,例如:

def clip(x,minValue,maxValue): iif(x>maxValue,maxValue,iif(x<minValue,minValue,x))
in = [1, 2, 3, 4, 5, 6, 7, 8 ] 
clip(in,2,6)

输出:

offset	0	1	2	3	4	5	6	7
0	2	2	3	4	5	6	6	6


请先 登录 后评论
李罗拉

DolphinDB已新增clip函数:clip(a, a_min, a_max), a_min和a_max都可以是标量或者和a等长的向量。

当a_min和a_max为向量时,a跟其中对应的元素做比较,范围外的填充a_min或a_max对应元素的边界。

x = 1..8
out = clip(x,2,6);
out;

输出:

[2,2,3,4,5,6,6,6]
请先 登录 后评论