当搜索min
或max
值时,可以获取找到的值的索引,如下所示:
[val, index] = max(some_array_of_values);
Run Code Online (Sandbox Code Playgroud)
如何获得价值指数median
?
注意:
是的,我知道中位数是什么,而且我知道它有时可以是中间两个值的平均值。我想要得到的是最接近或等于中值的值的索引。
值数组包含未排序的值。我们无法对该数组进行排序 - 我需要原始数组中的索引。但我们当然可以对其副本进行排序。数组大小没有限制 - 它相对较小(大约 100 个值)
如何定义一个像中值滤波器(medfilt2)一样的圆形滤波器,而不是[nn]的平方邻域,在半径为r的圆形邻域上执行中值?我需要在2d-image上执行此操作.(最好当然应该快速工作).谢谢
更新
a = int(input("Give a value: "))
b = int(input("Give a value: "))
c = int(input("Give a value: "))
def middle(a, b ,c) :
m = min(a,b,c)
M = max(a,b,c)
return a+b+c-m-M
Run Code Online (Sandbox Code Playgroud)
这就是即时通讯所在。它把我的数字带入了数据。我将如何显示中间的一个?对不起,我对此感到非常恐惧。在这门入门课程中,我的想法不胜枚举。@CommuSoft @Zorg @paxdiablo和其他所有人
我有一个包含 53 列(ID 列加 52 个数值)的数据框(数据)。我可以添加一个具有以下平均值的列:
data$mean <- rowMeans(data[,2:51],na.rm = TRUE) # add mean of rows
Run Code Online (Sandbox Code Playgroud)
但是,我不能用以下方法对中位数做同样的事情:
data$medians <- rowMedians(month.sum[,2:51],na.rm = TRUE) # add medians of rows
Run Code Online (Sandbox Code Playgroud)
我安装了包含的包matrixStatsrowMedians
,但它对我不起作用。
当我像这样应用中值滤波器时:
Mat medianFilter;
medianBlur(histEqu, medianFilter, 3);
Run Code Online (Sandbox Code Playgroud)
如果我应用中值滤波器,我期望得到相同的结果:
Mat manualMedianFiler;
float factor = 1 / 9.0;
Mat kernelMedian = (Mat_<float>(3, 3) <<
factor, factor, factor,
factor, factor, factor,
factor, factor, factor);
filter2D(histEqu, manualMedianFiler, CV_8U, kernelMedian, Point(-1,-1), 0, 4);
Run Code Online (Sandbox Code Playgroud)
所得矩阵相似,但不相等。难道我做错了什么?哪种是应用中值滤波器的正确方法?
我有一个包含浮点值和NaN值的数组.我正在拿这个数组的中位数.在当前情景中,中位数可能是某个值或NaN.我的问题是,如果中位数是NaN,它应该从数组而不是NaN返回最大值.
数组示例,
x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])
Run Code Online (Sandbox Code Playgroud)
在这个数组中,np.median是NaN.当中位数是NaN然后它应该从数组返回最大值,我的意思是它应该从数组返回(0.14)值.
我怎样才能返回这个值?
我试图计算一个大数组的运行中位数,平均值和标准.我知道如何计算运行平均值如下:
def running_mean(x, N):
cumsum = np.cumsum(np.insert(x, 0, 0))
return (cumsum[N:] - cumsum[:-N]) / float(N)
Run Code Online (Sandbox Code Playgroud)
这非常有效.但我不太明白为什么(cumsum[N:] - cumsum[:-N]) / float(N)
可以给出平均值(我从其他人那里借来的).
我试图添加另一个返回句来计算中位数,但它没有做我想要的.
return (cumsum[N:] - cumsum[:-N]) / float(N), np.median(cumsum[N:] - cumsum[:-N])
Run Code Online (Sandbox Code Playgroud)
有没有人提供一些提示来解决这个问题?非常感谢你.
张焕安
我试图在数据帧的列中找到中值.我得到的中值是浮点数,但我需要整数格式.
c_med = round(df['count'].median().astype(int))
c_med = round(df['count'].median()).astype(int)
Run Code Online (Sandbox Code Playgroud)
以上两种类型都给我这个错误.如果astype(int)
删除,那么答案是正确的.
错误
Traceback (most recent call last):
File "all_median.py", line 16, in <module>
c_med = round(df['count'].median()).astype(int)
AttributeError: 'float' object has no attribute 'astype'
Run Code Online (Sandbox Code Playgroud) Pyspark API提供除中位数之外的许多聚合函数.Spark 2带有approxQuantile,它给出近似的分位数,但精确的中位数计算起来非常昂贵.是否有更多Pyspark计算Spark Dataframe中一列值的中位数的方法?
我有numpy.array
一个尺寸dim_array
。我期待获得像这样的中值过滤器scipy.signal.medfilt(data, window_len)
。
这实际上不起作用,numpy.array
可能是因为尺寸为(dim_array, 1)
而不是(dim_array, )
。
如何获得这样的过滤器?
接下来,另一个问题,如何获得其他过滤器,即最小,最大,均值?