Python 如何将一个充满值表和头的.txt文件转换为numpy 2D数组?

Python 如何将一个充满值表和头的.txt文件转换为numpy 2D数组?,python,numpy,Python,Numpy,如何使用python对附加的.txt文件执行以下操作: 创建函数fnamedata(filename)以读取.txt文件中提供的数据。 然后从文本文件中获取数据,并以二维数组返回数据。 此数组需要使用numpy创建,并且必须是可访问的,以允许其他函数查找值 结果应该是一个可以访问以检索特定值的数组。 谢谢你的帮助 .txt文件: 31 1.04 1.04 1.04 1.96 1.04 1.98 38 1.04 1.85 1.86

如何使用python对附加的.txt文件执行以下操作: 创建函数fnamedata(filename)以读取.txt文件中提供的数据。 然后从文本文件中获取数据,并以二维数组返回数据。 此数组需要使用numpy创建,并且必须是可访问的,以允许其他函数查找值

结果应该是一个可以访问以检索特定值的数组。 谢谢你的帮助

.txt文件:

31  1.04    1.04    1.04    1.96    1.04    1.98        
38  1.04    1.85    1.86    1.87    1.88    1.89    
3   1.04    1.76    1.04    1.78    1.79    1.80    
36  1.04    1.67    1.68    1.69    1.70    1.71    
3   1.04    1.58    1.59    1.60    1.61    1.62    
3   1.04    1.49    1.50    1.51    1.52    1.53        
3   1.09    1.40    1.41    1.42    1.43    1.44    
32  1.00    1.31    1.32    1.33    1.34    1.35    
3   1.01    1.22    1.23    1.24    1.25    1.26    
29  1.03    1.04    1.05    1.04    1.07    1.04    

您能否共享您的
readData(filename:str):ndarray
?readData(filename:str):ndarray只是函数的一个示例名称。def readData(文件名)。我试图找到一种方法来创建一个函数,将.txt文件转换成python中的二维数组,numpy可以使用该数组来查找特定的值。这可能有些过分,但您可以使用它读取
.txt
(据我所知,这些值由一个公共值分隔),然后使用
pd.DataFrame.values
获取
np.array
数组中是否需要x轴和y轴名称?或者只是数据?哦,你没有写函数?你试过写吗?这是一个广告吗?看看。如果它不在函数中,我可以稍后添加它。我只需要了解如何生成arraysyntax错误的基本知识:文件“main.py”,第12行columns[0]=f“{starts}{columns[0]}”关于问题中所述的空格,您的数据是否准确?你能在这里发第一行吗?谢谢你的帮助。我已经找到了解决这个问题的方法,不需要第一句话。
import pandas as pd

# read file
f = open('file.txt', 'r+')
data_as_list = f.read()
f.close()

# preprocess data
columns = f.pop(0).split()
# correct for Temp C
starts = columns.pop(0)
columns[0] = f'{starts} {columns[0]}'

# convert the data to floats and fill out missing data with None
def convert(s: str):
    data = list(map(float, s.split()))
    return data + [None, ] * (len(columns) - len(data)) # fill put the 
data_as_list = list(map(convert, data_as_list))

# create a dataframe
df = pd.DataFrame(data_as_list, columns = columns)

# access the entry
print(df.loc[1, '0.10'])

P.S. Just noted that you want to wrap it in a function. What should be the arguments?