Python:仅将csv文件中的某些属性提取到numpy数组

Python:仅将csv文件中的某些属性提取到numpy数组,python,csv,numpy,attributes,selection,Python,Csv,Numpy,Attributes,Selection,我正试图开发一个神经网络,从csv文件中读取输入。我将此用作教程: 我理解输入是如何存储在X中的 X = dataset[:,0:4].astype(float) 问题是,我将要使用的数据集每个条目有100多个属性(不像这里只有4个)。我已经找到了其中哪一个我想用作输入,但是我找不到一种方法来创建与示例中格式相同的X。我尝试了numpy.vstack,但没有达到预期的效果 有人能给我举个例子,说明如何创建只包含指定属性的X吗?一个常见的过程是使用pandas,它允许通过进行数据类型软转换,然

我正试图开发一个神经网络,从csv文件中读取输入。我将此用作教程:

我理解输入是如何存储在X中的

X = dataset[:,0:4].astype(float)
问题是,我将要使用的数据集每个条目有100多个属性(不像这里只有4个)。我已经找到了其中哪一个我想用作输入,但是我找不到一种方法来创建与示例中格式相同的X。我尝试了numpy.vstack,但没有达到预期的效果


有人能给我举个例子,说明如何创建只包含指定属性的X吗?

一个常见的过程是使用pandas,它允许通过进行数据类型软转换,然后返回数据帧的Numpy表示形式。或者,您可以按照上面的建议指定要与
usecols
一起使用的列

从:

usecols:类似列表或可调用,默认值
None

返回 柱。如果类似列表,则所有元素都必须是位置的(即。 整数索引到文档列中)或对应的字符串 由用户在名称中提供或从中推断出的列名 文档标题行

看起来怎么样?

df = pd.read_csv(infile, usecols = ['a', 'b'])         # Read
df_dtypes = df.infer_objects()                         # Soft conversion
x = df.values                                          # Numpy array

print df.info()                                        # Inspect -> Object
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
a    3 non-null object
b    3 non-null object
dtypes: object(2)
memory usage: 120.0+ bytes

print df_types.info()                                  # Inspect -> dtype change
  <class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
a    3 non-null int64
b    3 non-null int64
dtypes: int64(2)
memory usage: 120.0 bytes

print x                                                # Inspect -> numpy array
[[7 3]
 [1 2]
 [5 1]]
df=pd.read_csv(infle,usecols=['a','b'])#read
df_dtypes=df.expert_objects()#软转换
x=df.values#Numpy数组
打印df.info()#检查->对象
范围索引:3个条目,0到2
数据列(共2列):
3个非空对象
B3非空对象
数据类型:对象(2)
内存使用:120.0+字节
打印dfu types.info()#检查->数据类型更改
范围索引:3个条目,0到2
数据列(共2列):
3个非空int64
B3非空int64
数据类型:int64(2)
内存使用:120.0字节
打印x#检查->numpy数组
[[7 3]
[1 2]
[5 1]]

您是否尝试了
usecols
参数?否。您能提供帮助吗?我使用了X=numpy.loadtxt(“IrisDataset.csv”,delimiter=',',usecols=(0,1,2,3))格式现在正常,但数据类型仍然有问题。因为我要使用的属性是不同的数据类型(无符号、布尔、字符串、有符号)。我不太清楚如何使用dtype参数。在这种情况下,您可能会发现
genfromtxt
更容易使用。如果无法将项目转换为默认的
浮动
,则不会阻塞
dtype=None
告诉它为每一列推断一个合适的数据类型。我建议先尝试一下,然后看看结果数组(尤其是它的数据类型)。然后将其用作细化字段数据类型的模型。我没有完全理解usecols=['a','b'],我已经包含了对pandas.read\u csv文档的引用。请让我知道它是否适用于你的情况谢谢你,这确实有效。如上所述,如果属性的数据类型不同,我该怎么办?除了浮点数,我还有布尔数、有符号和无符号整数以及stringsGet,去掉usecols,然后再试一次。它应该适用于您提到的所有数据类型,以防整个列的相应数据类型相同。请注意,字符串将始终是对象。此外,如果这起作用,请随意向上投票我的答案。dtype={'names':('ticker','year','month','day','hi'),'formats':('f2','f2','f2','S2')