我有一个包含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)))
答案 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)]
)