python(numpy):如何从CSV文件中读取特定列?
我有一个CSV数据文件,100列*100000低和一个标题 首先,我想制作一个列表,其中包含原始CSV数据文件的第1列、第3列、第5列和第10万列数据 在这种情况下,我想我可以使用下面的脚本python(numpy):如何从CSV文件中读取特定列?,python,csv,numpy,Python,Csv,Numpy,我有一个CSV数据文件,100列*100000低和一个标题 首先,我想制作一个列表,其中包含原始CSV数据文件的第1列、第3列、第5列和第10万列数据 在这种情况下,我想我可以使用下面的脚本 #Load data xy = np.loadtxt('CSV data.csv', delimiter=',', skiprows=1) x = xy[:,[1,3,5,6,7,8,9,10,11 .......,100000]] 但是,你知道,这不是一个好方法。打字困难,不利于泛化 首先,我认为下面的
#Load data
xy = np.loadtxt('CSV data.csv', delimiter=',', skiprows=1)
x = xy[:,[1,3,5,6,7,8,9,10,11 .......,100000]]
但是,你知道,这不是一个好方法。打字困难,不利于泛化
首先,我认为下面的脚本可以使用,但失败了
x = xy[:,[1,3,5:100000]]
如何使用特定的列数据创建单独的列表,这些列数据是分开的和连续的?只需使用
np.loadtxt()中的usecols
参数即可:
只需使用np.loadtxt()
中的usecols
参数即可:
np.r
是一个方便的函数(实际上是一个接受[]
的对象),它生成一个索引数组:
In [76]: np.r_[1,3,5:100]
Out[76]:
array([ 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
这应可用于xy[:,np.r_[…]
和usecols
参数
In [78]: np.arange(300).reshape(3,100)[:,np.r_[1,3,5:100:10]]
Out[78]:
array([[ 1, 3, 5, 15, 25, 35, 45, 55, 65, 75, 85, 95],
[101, 103, 105, 115, 125, 135, 145, 155, 165, 175, 185, 195],
[201, 203, 205, 215, 225, 235, 245, 255, 265, 275, 285, 295]])
np.r
是一个方便的函数(实际上是一个接受[]
的对象),它生成一个索引数组:
In [76]: np.r_[1,3,5:100]
Out[76]:
array([ 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
这应可用于xy[:,np.r_[…]
和usecols
参数
In [78]: np.arange(300).reshape(3,100)[:,np.r_[1,3,5:100:10]]
Out[78]:
array([[ 1, 3, 5, 15, 25, 35, 45, 55, 65, 75, 85, 95],
[101, 103, 105, 115, 125, 135, 145, 155, 165, 175, 185, 195],
[201, 203, 205, 215, 225, 235, 245, 255, 265, 275, 285, 295]])
另一个选项是通过从xy
中删除列来定义x
:
x = np.delete(xy, [0,2,4], axis=1)
另一个选项是通过从xy
中删除列来定义x
:
x = np.delete(xy, [0,2,4], axis=1)