2017-11-11 195 views
-1

非常新的编码,并试图编写一个程序,我将CSV文件中的元素转换为具有相同形状的NumPy数组。如何将文本中的CSV文件转换为NumPy中的数组?

我努力在我的CSV文件的内容进行任何操作,因为我不断收到以下错误消息(和类似):

TypeError: '_io.TextIOWrapper' object is not subscriptable 

TypeError: object of type '_io.TextIOWrapper' has no len() 

AttributeError: '_io.TextIOWrapper' object has no attribute 'split' 

我不知道该怎么做一个TextIOWrapper还是什么。谢谢!

+2

请首先向我们展示您所尝试的内容,而不仅仅是错误。 – roganjosh

+0

你有'打开'一个文件,但没有'读'任何东西。错误意味着您试图将文件视为文本行或行列表。 'TextIOWrapper'是打开的文件对象。 – hpaulj

回答

0
import numpy as np 
data = np.genfromtxt('csvfile.csv', delimiter=',') 

使用numpy的genfromtxt()方法并传递逗号作为分隔符,可以将csv文件加载为numpy数组。

但是,我宁愿推荐使用熊猫的read_csv()来读取文件并创建一个熊猫数据框。如果你愿意,你也可以将DataFrame转换为一个numpy数组。但是,与numpy数组相比,您可以使用DataFrame轻松执行大量有用的数据操作。

import pandas as pd 
data = pd.read_csv('csvfile.csv') # this creates a DataFrame 
data_np = np.array(data) # this creates a numpy array from the DataFrame 
相关问题