Я работаю с Python3, и я хотел бы загрузить данные из нескольких файлов CSV. Каждый CSV (одно измерение) имеет 3 столбца (3 разные физические величины).Я хочу загрузить каждое количество по 3 отдельным переменным.Для одного файла CSV это довольно просто, я использовал:
TIME,CH1,CH2 = loadtxt(file_path,usecols=(3,4,5),delimiter=',',skiprows=2,unpack=True)
, и он работал нормально.Теперь Я хотел бы расширить эту процедуру, чтобы я мог загрузить несколько файлов CSV .Каждый массив будет 2D, каждый столбец представляет один файл CSV.Вместо нескольких CSV с тремя переменными у меня будет 3 2D массива, что гораздо удобнее для анализа данных.
Я подумал, что могу попробовать что-то вроде этого:
TIME = matrix(zeros((20480,len(file_path)))) # 20480 length of each column
CH1 = matrix(zeros((20480,len(file_path)))) # len(file_path) number of CSV files
CH2 = matrix(zeros((20480,len(file_path))))
for k in range(0,len(file_path)): # reading each CSV file
TIME[:,k],CH1[:,k],CH2[:,k] = loadtxt(file_path[k],usecols=(3,4,5),delimiter=',',skiprows=2,unpack=True)
Ноэто говорит мне:
ValueError: could not broadcast input array from shape (20480) into shape (20480,1)
В конце я хотел бы, чтобы переменные выглядели так:
TIME = matrix([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
...,
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
Каждый столбец из одного отдельного файла CSV.
Я думаю, что это довольно обычная проблема, но я не совсем понимаю, как работают массивы в Python.Я получил эту идею от Matlab, которая довольно проста, но здесь я не знаю, почему не работает индексирование массивов с помощью TIME [:] [:].
У вас есть идеи, как я мог это сделать?Спасибо.