程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python read. Fichier de type TSP

編輯:Python

J'ai récemment appris à utiliserpythonAlgorithme d'optimisation d'écriture pour résoudretspQuestions,Ainsi, certains.tspExemple de type,Par exemple::berbin8Attendez.、berlin52Attendez.、a208.tspAttendez.,Comment utiliserpythonImporter.tspEt les papiers??Notez le problème.

1.Voyons d'abord.berlin8.tspFormat des données du fichier,Je vois.,No7La ligne commence à enregistrer les coordonnées du noeud,Ça ne sert à rien que la dernière ligne soit un signe de fin,En gros, tous les exemples sont dans ce format;

2.Ici, j'utilisepandasImporter des données,Attention aux besoinsSauter les six premières lignes sans lire(skiprows=6)

df = pd.read_csv(r".\Apprentissage combiné optimisé\demo_tsp\berlin8.tsp",sep=" ",skiprows=6,header=None,encoding='utf8')

Puis lisez les noeuds et les coordonnées,Les codes sont les suivants::

df = pd.read_csv(r".\Apprentissage combiné optimisé\demo_tsp\berlin8.tsp",sep=" ",skiprows=6,header=None,encoding='utf8')
node=list(df[0][0:-1])
num_points=len(node)
city_x = np.array(df[1][0:-1])
city_y = np.array(df[2][0:-1])
points= list(zip(city_x, city_y))

Imprimer les coordonnées des noeuds lus ,Ça a marché., Ensuite, vous pouvez écrire des algorithmes pour résoudre tspC'est un problème..

 3.Ce n'est pas fini,,,,, J'ai utilisé la même méthode pour ouvrir berlin52.tspAu moment du dossier,Mauvaise déclaration! Cette déclaration d'erreur signifie lire le fichier 17 Attendez - vous à 3Champs,C'est - à - dire:dfIl y a trois colonnes, Mais quatre champs apparaissent , Il y a un problème avec les champs du fichier source .

ParserError: Error tokenizing data. C error: Expected 3 fields in line 17, saw 4

4. J'a i trouvé beaucoup d'options en ligne qui sont fastidieuses et pas nécessairement utiles , J'ai utilisé une méthode simple et brutale .Premier réglageerror_bad_lines=False, Puis, en lisant le fichier print Quelles lignes ont des erreurs sauter directement sans lire , Et la cause de l'erreur .

df = pd.read_csv(r".\Apprentissage combiné optimisé\demo_tsp\berlin52.tsp",sep=" ",skiprows=6,header=None,error_bad_lines=False)

Résultats:

b'Skipping line 17: expected 3 fields, saw 4\nSkipping line 25: expected 3 fields, saw 5\n

Les résultats montrent que 17Lignes et paragraphes25 Il y a plus de caractères dans la ligne ,Est un saut de ligne\n;

La façon la plus simple est de l'ouvrir directement .tspDocumentation,Trouver17Et25D'accord, Supprimer la ligne , Encore une fois, il suffit de l'enregistrer .

5. Répétez l'étape 4 pour relire le Code sans erreur ,Lire tout.

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved