阅读科学计数法的指数

问题描述 投票:0回答:1

我正在尝试生成一组汇总数据,所以我不关心数字本身,我只关心指数 - 目标是找到 7 位数字的总数(例如电话号码) 。我目前处理这个问题的方式非常简单

我有一个 CSV 数据集,它看起来像这样:

“1.108941100000000000e+07, 4.867837000000000000e+06, ...”

# numlist is the dataset

x = np.trunc(np.log10(numlist))    
total = (x == 6).sum()

这给了我 7 位数字的数量。当我选择这种方法时,我假设输入将是整数列表,但现在我看到数据实际上可以以科学计数法给出/存储。如果它以科学记数法给出,是否有更快的方法来达到相同的结果?有没有一种方法可以让我从 csv 文件加载指数并完全跳过 log10 行为? 此外,我不限于使用 numpy 数组,但经过一些实验,它们是实现我的目的最快的实现。

python pandas numpy scientific-notation
1个回答
1
投票

计算大小为

n

 的指数

def count_exponents(path, n): n_str = 'e+0' + str(n) out = 0 with open(path) as fp: for line in fp: out += line.count(n_str) return out

返回指数

import re pattern = re.compile('e([+\-]\d+)') def get_exponents(path): with open(path) as fp: out = [pattern.findall(line) for line in fp] return out

© www.soinside.com 2019 - 2024. All rights reserved.