首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python2.7(通过np.array.astype函数)将txt列数据(字符串)转换为int

使用Python2.7(通过np.array.astype函数)将txt列数据(字符串)转换为int
EN

Stack Overflow用户
提问于 2018-05-31 16:33:14
回答 3查看 41关注 0票数 2
代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt  
f=open('00001.txt','r')

if f==0:
    print("fail to open the file")
else:
    print("file successfully opened")
    data=f.readlines()
    a = np.array(data)  
    yvec1 = a.astype(int)
    print(yvec1)
if f.close()==0:
    print("fail to close file")
else:
    print("file closed")

这就是答案:

代码语言:javascript
复制
ValueError: invalid literal for int() with base 10: '\n'

原始文本数据为:

代码语言:javascript
复制
name
716
722
729
732
730
728
729
733
735
737
737
739
741
744
747
749
747
742
742
742
742
741
739
738
736
734
732
...
EN

回答 3

Stack Overflow用户

发布于 2018-05-31 16:41:38

你应该这样做,因为它更"pythonic":

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt


# Read your file properly
with open('00001.txt', 'r') as f
    # Retrieve the data without '\n' code (it was your problem)
    data = f.read().splitlines()
    # Load it in numpy
    a = np.array(data)
    # Do what you want with it
    yvec1 = a.astype(int)
票数 1
EN

Stack Overflow用户

发布于 2018-05-31 16:37:32

尝试a = np.array(data.split('\n')) -问题是,当您以这种方式读取文件时,每一行都包含换行符\n

票数 0
EN

Stack Overflow用户

发布于 2018-05-31 16:40:03

您的代码错误,因为/n不是数字字符,无法转换为int。

试试这个:

代码语言:javascript
复制
data=f.readlines()
data_int = []
for item in data:
  data_int.append(int(item))
a = np.array(data_int)  
yvec1 = a.astype(int)
print(yvec1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50619974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档