从.CSV文件中选择特定范围的列

时间:2018-01-19 09:00:33

标签: python arrays numpy indexing

我有一个包含78000列的CSV文件。我正在尝试选择列2-100,102-200和最后300列。其余的列需要跳过。

我使用numpy.loadtxt来选择列范围:

numpy.loadtxt(input_file_name, delimiter=",", skiprows = 1, usecols=range(1,99))

我们如何选择执行类似操作的列块,例如:

numpy.loadtxt(input_file_name, delimiter=",", skiprows = 1, usecols=(range(1,99),range(101,199),range(74999,77999)))

1 个答案:

答案 0 :(得分:1)

使用numpy行选择器np.r_

>>> np.r_[range(3), range(15, 18), range(100, 103)]

或(使用hpaulj的建议),

>>> np.r_[0:3, 15:16, 100:103]

array([  0,   1,   2,  15,  16,  17, 100, 101, 102])

对于您的代码,这就是您所说的 -

numpy.loadtxt(
  input_file_name, 
  delimiter=",", 
  skiprows = 1, 
  usecols=np.r_[range(1, 99), range(101, 199), range(74999, 77999)]
)