如何在Python中自动命名计算值的容器,并在一个范围内循环
我有一些变量,希望将它们放在一组大小相同的容器中,输出是每个容器中变量数量的计数。我设置了一个最小值和最大值,将小于最小值的变量放入“忽略”容器中。然后,我根据要在最大值和最小值之间拟合的箱子数量计算箱子的宽度,为每个箱子设置上下边界,以便知道变量进入哪个箱子。大于最大值的变量将被完全忽略 我做得很好,但我遇到的问题是自动命名垃圾箱并计算每个垃圾箱中的变量数量。我使用range()检查了所需数量的垃圾箱。但我无法在Python中理解如何标记不同的垃圾箱并将计数存储在那里。我在论坛上看到过.count()和.sum,但我无法使它们适应这种情况,即在循环过程中更改bin名称 到目前为止的代码是(其中value是我拥有的变量列表,B是我想要的箱子数量):如何在Python中自动命名计算值的容器,并在一个范围内循环,python,Python,我有一些变量,希望将它们放在一组大小相同的容器中,输出是每个容器中变量数量的计数。我设置了一个最小值和最大值,将小于最小值的变量放入“忽略”容器中。然后,我根据要在最大值和最小值之间拟合的箱子数量计算箱子的宽度,为每个箱子设置上下边界,以便知道变量进入哪个箱子。大于最大值的变量将被完全忽略 我做得很好,但我遇到的问题是自动命名垃圾箱并计算每个垃圾箱中的变量数量。我使用range()检查了所需数量的垃圾箱。但我无法在Python中理解如何标记不同的垃圾箱并将计数存储在那里。我在论坛上看到过.cou
将numpy导入为np
进口统计
def中位数_箱(值B):
忽略=0
平均值=np.平均值(数值)
STDEV=np.std(数值)
最小值=平均值-标准差
最大值=平均值+标准差
宽度=(2*stddev)/B
对于值中的val:
如果val
我希望bin_I自动标记自身bin_1、bin_2等,并存储计数
非常感谢听上去你好像想用字典,不过我也是这么想的。创建许多可变的bin_i,将使您的代码一团糟。相反,您希望创建
bin_dict={}
并将这些值存储在那里bin_dict[i]=value
OK。我试试看。谢谢我,听起来你好像想用字典,不过我想也是。创建许多可变的bin_i,将使您的代码一团糟。相反,您希望创建bin_dict={}
并将这些值存储在那里bin_dict[i]=value
OK。我试试看。谢谢
import numpy as np
import statistics
def median_bins(values, B):
ignore = 0
means = np.mean(values)
stddev = np.std(values)
minval = means - stddev
maxval = means + stddev
width = (2*stddev)/B
for val in values:
if val < minval:
ignore = ignore+1
else:
for i in range(0,B):
bin_i = 0
if minval + i*width < val < minval + (i+1)*width:
bin_i = bin_i + 1
else:
continue
return(means, stddev, ignore, count)