python函数的输出没有排序

时间:2018-05-24 12:25:56

标签: python function numpy

我在Python中定义了一个函数,它从未排序的文本文件中读取数据,通过增加顺序对内容进行排序。然后我要求函数返回最终变量。

当我将该函数作为另一个脚本的一部分调用时,该函数的输出位于" unsorted"状态。

def read_file(my_file):
    import numpy as np
    initial_data =[]
    A = []
    B =  []
    C =  []
    D =  []
    with open(my_file) as f:
        for num, row in enumerate(f):
            initial_data.append(row[:])
            lines = row.strip()
            columns = lines.split()
            if num > 11:
                A.append(float(columns[0]))
                B.append(float(columns[1]))
                C.append(float(columns[2]))
                D.append(float(columns[4]))

    data = np.vstack((A,B, C,D)).T
    data= data[np.argsort(data[:,0])]

    return(data)

当我单独运行此脚本时,最终datadata[np.argsort(data[:,0])]排序。

但是当我这样做时:

new_data = read_file(my_file)

new_data未排序。

编辑:我使用的是Python 3,my_file是一个简单的文本文件(.txt)

1 个答案:

答案 0 :(得分:1)

实际上,我不知道这个的原因,但我面临同样的问题,我知道如何通过它。我通过用新的numpy数组替换最后一行中的“数据”来解决问题。我的意思是代替这一行

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed

替换这两行代码

data= data[np.argsort(data[:,0])]

最后返回data1。