簡體   English   中英

將文件讀取到numpy數組python中

[英]reading file into numpy array python

對於作業,我需要讀取一個文件並將其寫入numpy數組,該數據包含一個字符串和2個浮點數:

# naam  massa(kg)   radius(km)
Venus   4.8685e24   6051.8
Aarde   5.9736e24   6378.1
Mars    6.4185e23   3396.2
Maan    7.349e22    1738.1
Saturnus    5.6846e26   60268

以下是我對這個問題的解決方案:

def dataread(filename):
temp = np.empty((1,3), dtype=np.object)
x = 0
f = open(filename,'r')
for line in f:
    if line[0] !='#' :
        l = line.split('\t')
        temp[0,0], temp[0,1] , temp[0,2] = l[0] , float(l[1]) , float(l[2])
        if x == 0:
            data = temp
        if x > 0:
            data = np.vstack((data,temp))
        x+=1
f.close()   
return data

它以某種方式返回以下數組:

[['Aarde' 5.9736e+24 6378.1]
['Aarde' 5.9736e+24 6378.1]
['Mars' 6.4185e+23 3396.2]
['Maan' 7.349e+22 1738.1]
['Saturnus' 5.6846e+26 60268.0]]

第一行正在讀取,但沒有結束於數組中,而第二行被讀取了兩次。 我究竟做錯了什么 ? 我是python的新手,所以對效率的任何評論也非常感謝

提前致謝

這會將您的三列讀入一個numpy結構化數組:

import numpy as np
data = np.genfromtxt(
    'data.txt',
     dtypes=None,  # determine types automatically
     names=['name', 'mass', 'radius'],
)
print(data['name'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM