小编mik*_*mik的帖子

什么花费更少的时间:读取多个文件或将内容合并到一个大文件中?

我需要打开和操作许多文件中存在的数据,这些文件位于多个文件夹中.我们说的是大约500k文件,其中包含大约5Gb的数字数据.

我使用过这些数据,但运行半简单算法大约需要一个小时.我想知道更改文件地址的过程是否是最耗时的操作...(因为我必须做循环,我连接我想要访问的文件夹/文件号码).我正在将所有原始数据合并到一个文件(带有文件ID)中,希望通过所有原始数据花费更少的时间...

我在这个假设中是否正确?这需要我很多时间.我用c ++做这个.感谢您的任何意见

@Thomas:谢谢你的建议.我正在添加多个缓冲区,它已经显示出有希望的迹象.我肯定会为每个任务启动线程.我将尝试使我的阵列大约1 Mb,看看它是否真的加快了速度.所有缓冲区都是全局变量,所以它应该没问题......

c++ csv file

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

Itertools 组合/排列大小

是否真的可以看到 itertools.Combination 或其他对象的 len() ,而不将其具体化到列表中?
我可以用阶乘得到梳子的基数或排列,......但我想要一些概括的东西。

谢谢

python python-itertools

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

如何将多个Seaborn地块保存到同一pdf / png文件中?

我正在努力将几张图保存在同一PDF上。数据源是一个数据框。我考虑过将它们另存为png,但这一点都不实际。

pdf_pages = PdfPages('kde.pdf')
for i in range(1,114):
    for j in range(0,113):
        x=t1.iloc[:,i]
        y=t1.iloc[:,j]
        fig=sns.jointplot(x=x, y=y, kind="kde",dropna=True);
        pdf_pages.savefig(fig)
Run Code Online (Sandbox Code Playgroud)

python pdf pandas seaborn

1
推荐指数
1
解决办法
3413
查看次数

R:从逗号分隔的字符串中删除连续的重复项

我在从以下数据中删除适量信息时遇到问题:

18,14,17,2,9,8
17,17,17,14
18,14,17,2,1,1,1,1,9,8,1,1,1

我正在应用 !duplicate 来删除重复项。

SplitFunction <- function(x) {
  b <- unlist(strsplit(x, '[,]'))
  c <- b[!duplicated(b)]
  return(paste(c, collapse=","))
}
Run Code Online (Sandbox Code Playgroud)

我在仅删除连续的重复项时遇到问题。下面的结果是我得到的。

18,14,17,2,9,8
17,14
18,14,17,2,1,9,8

下面的数据是我想要获得的。

18,14,17,2,9,8
17,14
18,14,17,2,1,9,8,1

你能建议一种方法来执行此操作吗?理想情况下是矢量化方法...
谢谢,
米格尔

csv r duplicates

1
推荐指数
1
解决办法
1444
查看次数

计算数组中的不同值-性能提示

我在优化路线图时遇到一些问题。
我想在一个字符串数组中生成一个频率表(计数不同的事件)。我的代码非常适合小型数组,但是当我开始使用100k +结构(具有许多不同的值)时,它的性能还不够。

现在,我的方法是生成具有不同值的数组,比较值并增加计数器变量(映射到字符串)。

    counter := make( map[string]int )    
    for _, distinct := range distinctStrArray{
        for _, row := range StrArray{
            if (row == distinct){
                counter[distinct]++
            }  
        } 
    }
Run Code Online (Sandbox Code Playgroud)

我尝试了另一种方法,其中先前对输入数组进行了排序(以最大程度地减少对地图的更改次数)。这有点快。

    count:=0
    for _, distinct := range distinctStrArray{
        for _, row := range StrArray{
            if (row == distinct){
                count++
            }  
        } 
    counter[distinct] += count
    count= 0
    } 
Run Code Online (Sandbox Code Playgroud)

您对我可以如何优化简单的count(distinct)类型问题有任何建议吗?我对任何事情都开放。
谢谢!

maps count go

0
推荐指数
1
解决办法
1786
查看次数

标签 统计

csv ×2

python ×2

c++ ×1

count ×1

duplicates ×1

file ×1

go ×1

maps ×1

pandas ×1

pdf ×1

python-itertools ×1

r ×1

seaborn ×1