- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在文本文件中有一列从 1 到 19999 的一些数据点,我想用以前的值减去每个新值并将答案保存在新文本文件的新列中。
我的数据点(在一列中)在文本文件中带有索引号,如下所示:
1 66.295962
2 66.318076
3 66.479436
4 66.460284
5 66.551778
6 66.303606
7 66.222943
8 66.50905
9 66.268011
10 66.291807
. .
. .
. .
. .
19993 69.303592
19994 69.384204
19995 69.375126
19996 69.417533
19997 69.296388
19998 69.284336
19999 69.403861
如何在 python 中为此编写程序,非常感谢任何帮助。提前致谢,我已经尝试将我的列转换为列表,但我无法弄清楚如何减去值并保存答案在新文本文件的新列中....
我的程序是这样的:
f = open ('infilename', 'r')
for line in f:
line = line.strip()
columns = line.split()
# for i in xrange(len(columns)):
print columns[1]
import csv
#open file
infile = open('infilename', 'r')
#define csv reader object, assuming delimiter is tab
tsvfile = csv.reader(infile, delimiter='\t')
lines = []
## iterate through lines in file
for line in tsvfile:
lines.append(line)
print "Col1",[line[0] for line in lines]
最佳答案
作为菜鸟,我可能会建议使用 Python 和 NumPy 来处理和处理表格形式的数据。大多数安装都带有 NumPy(或 Pandas),因此它是工具包中的一个有值(value)的工具。请原谅格式,我不习惯这个网站
这是文件示例(我无法格式化,所以它在不同的行上):
1 66.295962
2 66.318076
3 66.479436
4 66.460284
5 66.551778
6 66.303606
7 66.222943
8 66.50905
9 66.268011
10 66.291807
做一些导入,
>>> import numpy as np
>>> import numpy.lib.recfunctions as rfn
将文本文件加载为具有设置数据类型 (dtype) 的数组。
>>> f = np.loadtxt("f:/test/test.txt",dtype=[('ID','int32'),('Value','float64')])
>>> f
array([(1, 66.295962), (2, 66.318076), (3, 66.479436), (4, 66.460284),
(5, 66.551778), (6, 66.303606), (7, 66.222943), (8, 66.50905),
(9, 66.268011), (10, 66.291807)],
dtype=[('ID', '<i4'), ('Value', '<f8')])
创建由一个条目移位/滚动的第二列数据,以方便减法
>>> a = f['Value']
>>> a1 = np.roll(a,-1)
>>> diff = a1-a
通过合并原始数组和差异来创建输出文本文件数组(用一些冗长的文字描述如何)
>>> out = rfn.merge_arrays((f, diff), asrecarray=True, flatten=True)
最后创建输出表并保存为文本文件试图保留一些格式的外观。
>>> np.savetxt("f:/test/out.txt", out, delimiter="",fmt='% 10i % 10.6f % 10.6f')
结果如下(你可以放标题等等)
1 66.295962 0.022114
2 66.318076 0.161360
3 66.479436 -0.019152
4 66.460284 0.091494
5 66.551778 -0.248172
6 66.303606 -0.080663
7 66.222943 0.286107
8 66.509050 -0.241039
9 66.268011 0.023796
10 66.291807 0.004155
注意...第 3 列中的最后一个条目是第 2 列中最后一个值和第一个值之间的差值。差异所在与原始值之间的配对取决于您是向前滚动还是向后滚动。在给出的示例中,我向后滚动,因此第一个差异是第 2 列中的第一个值和第二个值之间的差异。可以根据您的目的进行调整,最终/第一个值可以设置为 0,具体取决于您是否向前滚动或向后。
关于python - 我想制作一个 python 脚本,用以前的值减去最新值并将结果保存在新文本文件的新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006995/
我有两个列表,我想从 neg 中减去列表 pos 中元素的频率。所以: neg = [x for x in all[:800000]] pos = [x for x in all[800000:]]
我有两个列表,我想从 neg 中减去列表 pos 中元素的频率。所以: neg = [x for x in all[:800000]] pos = [x for x in all[800000:]]
我正在尝试减去 2 个标准逻辑向量并得到错误 p2 <= p1(11 downto 0)- idata(11 downto 0); Error (10327): VHDL error at sub.v
我将以下代码嵌入到类中。每当我运行 distToPoint 时,它都会给出错误“不支持的操作数类型 -: 'NoneType' 和 'float'” 我不知道为什么它会返回 NoneType 和如何让
这一直让我想知道, 假设我有这种情况: select (...long sub query..) - (...long sub query..) 我想把 - 放在条件中,这意味着有时它会是 - 有时是
我有两个 vector 。我需要从 vector1 中删除 vector2 中的内容。 [编辑:不清楚这是否意味着按照下面的链接或设置差异进行逐元素减法] 我使用 Visual Studio 2010
我有一张这样的 table : id product_property_id product_id amount type 1 1 145 10
我有两个 boolean 值列表 buy_machine 和 broken_machine。我想创建第三个列表 working_machines,它是购买的机器数量的总和并减去坏机器的数量。 我尝试了
我似乎可以解决这个问题。我有两个来自 sql 的访问者/国家/地区列表 us,us,uk,fr,uk,uk,uk 和 us,uk 我用 array_count_values() 将它们制成数组: Ar
我在 javascript 中减去时间时遇到了麻烦,尽管我已经谷歌搜索了 2 天但没有任何运气:( 我正在尝试为调查问卷计时。当用户开始调查问卷时,会记录时间戳。当用户完成/单击提交时,会记录新的时间
我正在尝试对 flex 搜索中索引的字段进行一些分析。 其中两个字段是“start_time”和“end_time”。我基本上希望将这两个字段的差异分组,即('end_time'-'start_tim
我有一个函数,它接收两个 BigDecimal 数字,即 bd1 和 bd2 作为参数。该函数应减去 bd1 - db2 并返回 bd1 和 bd2 的小数位数均为 2,结果的小数位数也应仅为 2但使
根据ldt_code中的ld源代码here。没有将dl_main传递给phdr的上下文,我对为什么通过减去虚拟地址来推断main_map的加载地址有些困惑。 我跟踪过的代码: 1124 static
我进行了多次重复测量的治疗,我想减去每次治疗的每个时间点的对照值。数据集的形状是这样的,有多年、物种和处理。 ID Year Species Treatment value 1 2010 x
我正在尝试查找一次旅行的矩形区域,可以在此处找到更多上下文 我在下面的代码中遇到的错误是: "Exception in thread "main" java.lang.ArrayIndexOutOfB
我一直在尝试使用 pandas dataframe 减去我读入 python 的列之间的日期和时间。我写的代码如下: Time = df['t'] - df['t'].shift(1) + df['t
I want to subtract all values in a[nn,...,0] by b[nn] while keeping the original structure of the ar
假设我有两个列表:List l1,和 Listl2 请帮助我如何在 2 个列表之间合并、减去和相交。谢谢。 注意:我使用的是 .NET 2.0,所以我不能使用 LINQ。谢谢。 最佳答案 以下是伪代码
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在尝试运行以下代码: extern crate unicase; use unicase::UniCase; use std::collections::HashSet; fn main() {
我是一名优秀的程序员,十分优秀!