【问题标题】:Difference between a range of values of txt filestxt文件的一系列值之间的差异
【发布时间】:2017-07-28 03:47:30
【问题描述】:

所以我有 10 个名为 A_1,A_2,......A_10 的 txt 文件和一个名为 A 的工作 txt 文件。在这些 txt 文件的每一列中,有 4320 个值。我的目标是仅将 A txt 文件的任何列的前 1440 个值与其他 10 个 txt 文件(A_1、A_2、.....A_10)进行比较,并找到差异的平方和。我的方法是这样,但它给了我所有 4320 值的差异,我被困在如何操纵代码以找到仅前 1440 个值的差异:

import numpy as np
filelist=[]
for i in range(1,11):
    filelist.append("/Users/Hrihaan/Desktop/A_%s.txt" %i)
for fname in filelist:
    data=np.loadtxt(fname)
    data1=np.loadtxt('/Users/Hrihaan/Desktop/A.txt')
    x=data[:,1]
    x1=data1[:,1]
    x2=(x-x1)**2
    x3=sum(x2)
    print(fname)
    print(x3)

【问题讨论】:

    标签: python numpy text difference


    【解决方案1】:

    添加下面的切片应该可以解决问题。

    np.loadtxt(fname)[:1440]
    

    它导致数据只包括索引为 0 到但不包括 1440 的行...因为 Python 是从零开始的索引,所以总共有 1440 行。

    for fname in filelist:
        data=np.loadtxt(fname)[:1440]
        data1=np.loadtxt('/Users/Hrihaan/Desktop/A.txt')
        x=data[:,1]
        x1=data1[:,1]
        x2=(x-x1)**2
        x3=sum(x2)
        print(fname)
        print(x3)
    

    【讨论】:

    • 成功了,在过去的 24 小时内尝试以如此复杂的方式进行操作,不知道一个简单的技巧可以做到,非常感谢。
    • 所以,我的代码在最后两个命令中设置的方式,它打印出文件名(A_1,A_2.....A_10)和差异平方和,我想知道最小的 3 个差异及其相应的文件,在我的代码中手动查看我可以做到的答案,但是当我将使用许多不可行的文件时。有什么建议我可以打印出最小的 3 个总和及其对应的 txt 文件名吗?
    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2013-07-12
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多