#python #arrays #python-3.x #numpy #matplotlib
Вопрос:
У меня есть папка fitness_tracker, где у меня больше папок, таких как местоположение GPS 2021-10-23. единственное различие между папками-это дата. ВО всех этих вложенных папках есть CSV-файл с именем Необработанные данные. Необработанные данные включают в себя данные о широте и скорости во времени в разных столбцах. я хочу написать программу, которая войдет в fitness_tracker, возьмет последние папки ( скажем, 5 из 10 папок), прочитав имена файлов, войдет в эти папки и прочитает файлы csv с необработанными данными и сохранит данные о времени в одном матричном массиве. прямо сейчас я могу сделать это для одного файла, используя NUMPY.
я хочу прочитать значение времени из необработанных данных из отдельной папки и сохранить его в матрице time = np.array([t1, t2, t3,t4,t5])
, а затем использовать эти данные для построения графика с помощью библиотеки matplot
это программа, которую я сейчас запускаю.
import numpy as np import matplotlib.pyplot as plt bus_data = np.loadtxt('Raw Data.csv',delimiter=',',skiprows=1) # 1a. Import GPS File time = bus_data[:,0]/60 # Second to minute latitude = bus_data[:,1] longitude = bus_data[:,2] altitude = bus_data[:,3] # Unit = Meter speed = bus_data[:,5] # Unit = Meter / second distance = bus_data[:,7] # Unit = kilometer fig1, axs1 = plt.subplots(1, 1) axs1.plot(distance, speed, 'k.',markersize = 1, label='data') axs1.set(xlabel='Distance (km)', ylabel='Speed (m/s)') axs1.set_title('Speed over Distance') axs1.legend() plt.savefig('Speed over Distance.png',dpi=200) plt.show()
Ответ №1:
Вот как я бы получил данные о времени из списка каталогов:
import numpy as np from os import listdir from os.path import isfile, join directories = [dir1, dir2, ...] files = [] for directory in directories: files.append([f for f in listdir(directory) if isfile(join(directory, f)) and f.endswith(".csv")]) data = [] for file in files: data.append(np.loadtxt('Raw Data.csv',delimiter=',',skiprows=1)) time = [] for d in data: time.append(d[:,0]/60)
Если вы хотите получить список каталогов на основе их имени (и, следовательно, даты), вам придется проделать еще некоторую работу по анализу дат из названий папок, но я думаю, что это заслуживает нового вопроса, так как этот вопрос уже задан слишком широко, имхо.
Комментарии:
1. Привет, спасибо за отзыв. Я попробовал ваш код, но он считывает CSV-файл из каталога программы, а не из каталога, который я предоставил.
2. Я только что попробовал, и это отлично работает. Как вы предоставили каталоги?
3. Привет. Извините. это сработало отлично. я не знаю, что не так с python. Моя первая попытка провалилась . но сегодня я попробовал это снова, и это работает. Может быть, я сделал что-то не так в первый раз.