标签: binning

直方图使用gnuplot?

我知道如果我的.dat文件已经正确装箱数据,如何在gnuplot中创建直方图(只需使用"带框").有没有办法获取数字列表并让gnuplot根据用户提供的范围和bin大小提供直方图?

gnuplot histogram binning

201
推荐指数
8
解决办法
20万
查看次数

获取直方图的数据

有没有办法在MySQL中指定bin大小?现在,我正在尝试以下SQL查询:

select total, count(total) from faults GROUP BY total;
Run Code Online (Sandbox Code Playgroud)

正在生成的数据足够好,但行数太多.我需要的是一种将数据分组到预定义箱中的方法.我可以从脚本语言中做到这一点,但有没有办法在SQL中直接执行?

例:

+-------+--------------+
| total | count(total) |
+-------+--------------+
|    30 |            1 | 
|    31 |            2 | 
|    33 |            1 | 
|    34 |            3 | 
|    35 |            2 | 
|    36 |            6 | 
|    37 |            3 | 
|    38 |            2 | 
|    41 |            1 | 
|    42 |            5 | 
|    43 |            1 | 
|    44 |            7 | 
|    45 …
Run Code Online (Sandbox Code Playgroud)

mysql histogram binning

74
推荐指数
5
解决办法
4万
查看次数

熊猫:将类别转换为数字

假设我有一个数据框,其国家/地区如下:

cc | temp
US | 37.0
CA | 12.0
US | 35.0
AU | 20.0
Run Code Online (Sandbox Code Playgroud)

我知道有一个pd.get_dummies函数可以将这些国家/地区转换为"单热编码".但是,我希望将它们转换为索引,以便我得到它cc_index = [1,2,1,3].

我假设有一种比使用get_dummies和numpy where子句更快的方法,如下所示:

[np.where(x) for x in df.cc.get_dummies().values]

使用'因子'在R中这样做有点容易,所以我希望大熊猫有类似的东西.

python series binning pandas categorical-data

51
推荐指数
4
解决办法
5万
查看次数

dplyr中是否提供cut()样式分箱?

有没有办法做一些类似于cut()dplyr表中装箱数值的函数?我正在研究一个大的postgres表,并且当前可以在一开始就在sql中编写case语句,或者输出非聚合数据并应用cut().两者都有明显的缺点...案例陈述不是特别优雅,并且通过collect()根本没有效率地提取大量记录.

sql r binning dplyr

32
推荐指数
3
解决办法
1万
查看次数

在数据框上定义和应用自定义分档

使用python我创建了包含相似度值的以下数据框:

  cosinFcolor cosinEdge cosinTexture histoFcolor histoEdge histoTexture    jaccard
1       0.770     0.489        0.388  0.57500000 0.5845137    0.3920000 0.00000000
2       0.067     0.496        0.912  0.13865546 0.6147309    0.6984127 0.00000000
3       0.514     0.426        0.692  0.36440678 0.4787535    0.5198413 0.05882353
4       0.102     0.430        0.739  0.11297071 0.5288008    0.5436508 0.00000000
5       0.560     0.735        0.554  0.48148148 0.8168083    0.4603175 0.00000000
6       0.029     0.302        0.558  0.08547009 0.3928234    0.4603175 0.00000000
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个R脚本来生成另一个反映二进制数据的数据框,但如果该值大于0.5,则应用我的条件条件

伪代码:

if (cosinFcolor > 0.5 & cosinFcolor <= 0.6)
   bin = 1
if (cosinFcolor > 0.6 & cosinFcolor <= 0.7)
   bin = 2 …
Run Code Online (Sandbox Code Playgroud)

r binning dataframe summarize

31
推荐指数
3
解决办法
8万
查看次数

通过平均或重新调整numpy 2d数组来调整大小

我试图在python中重新实现一个IDL函数:

http://star.pst.qub.ac.uk/idl/REBIN.html

通过求平均值减去2d阵列的整数因子.

例如:

>>> a=np.arange(24).reshape((4,6))
>>> a
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])
Run Code Online (Sandbox Code Playgroud)

我想通过取相关样本的平均值将其调整为(2,3),预期输出为:

>>> b = rebin(a, (2, 3))
>>> b
array([[  3.5,   5.5,  7.5],
       [ 15.5, 17.5,  19.5]])
Run Code Online (Sandbox Code Playgroud)

b[0,0] = np.mean(a[:2,:2]), b[0,1] = np.mean(a[:2,2:4])等等.

我相信我应该重塑为4维数组,然后在正确的切片上取平均值,但无法弄清楚算法.你有什么提示吗?

python numpy slice binning

26
推荐指数
3
解决办法
2万
查看次数

更好地装箱大熊猫

我有一个数据框,想要按一系列值过滤或分组,然后获取每个bin中的值计数.

目前,我这样做:

x = 5
y = 17
z = 33
filter_values = [x, y, z]
filtered_a = df[df.filtercol <= x]
a_count = filtered_a.filtercol.count()

filtered_b = df[df.filtercol > x]
filtered_b = filtered_b[filtered_b <= y]
b_count = filtered_b.filtercol.count()

filtered_c = df[df.filtercol > y]
c_count = filtered_c.filtercol.count()
Run Code Online (Sandbox Code Playgroud)

但有没有更简洁的方法来完成同样的事情?

python binning pandas

19
推荐指数
1
解决办法
2万
查看次数

numpy 1D数组:掩码重复n次以上的元素

给定整数数组

[1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5]
Run Code Online (Sandbox Code Playgroud)

我需要掩盖重复N多次的元素。需要说明的是:主要目标是检索布尔掩码数组,以后再用于装箱计算。

我想出了一个相当复杂的解决方案

[1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5]
Run Code Online (Sandbox Code Playgroud)

给例如

import numpy as np

bins = np.array([1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5])

N = 3
splits = np.split(bins, np.where(np.diff(bins) != 0)[0]+1) …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy binning

18
推荐指数
2
解决办法
678
查看次数

Bin pandas每X行数据帧

我有一个简单的数据框,我想每3行bin.

它看起来像这样:

    col1
0      2
1      1
2      3
3      1
4      0
Run Code Online (Sandbox Code Playgroud)

我想把它变成这个:

    col1
0      2
1    0.5
Run Code Online (Sandbox Code Playgroud)

我已经在这里发布了类似的问题,但我不知道如何将解决方案移植到我当前的用例中.

你能帮我吗?

非常感谢!

python binning dataframe pandas

17
推荐指数
2
解决办法
7464
查看次数

将点分配给箱子

将数值合并到一定范围内的有效方法是什么?例如,假设我有一个值列表,我想按它们的范围将它们分成N个bin.现在,我做这样的事情:

from scipy import *
num_bins = 3 # number of bins to use
values = # some array of integers...
min_val = min(values) - 1
max_val = max(values) + 1
my_bins = linspace(min_val, max_val, num_bins)
# assign point to my bins
for v in values:
  best_bin = min_index(abs(my_bins - v))
Run Code Online (Sandbox Code Playgroud)

其中min_index返回最小值的索引.我们的想法是,您可以通过查看具有最小差异的bin来找到该点落入的bin.

但我认为这有奇怪的边缘情况.我正在寻找的是一个很好的代表箱子,理想情况下半封闭半开(所以没有办法将一个点分配到两个箱子),即

bin1 = [x1, x2)
bin2 = [x2, x3)
bin3 = [x3, x4)
etc...
Run Code Online (Sandbox Code Playgroud)

使用numpy/scipy在Python中执行此操作的好方法是什么?我只关心binning整数值.

非常感谢您的帮助.

python numpy scipy binning

13
推荐指数
1
解决办法
3万
查看次数