Начиная с файла csv, у меня есть многомерный массив numpy (размеры: 617 x 9), и мне нужен только один столбец этого массива n x m. В этом столбце хранятся последовательные данные, подобные следующим:
Код: Выделить всё
[0,0,0,0,0,0,620,625,622,710,658,2150,2142,2569,2600,21,24,30,45,32,14,1100,1119,1150 ...]
Более или менее циклично они представляют собой наборы значений, которые не сильно отличаются друг от друга. Мне нужно будет назначить средние значения и стандартное отклонение этих значений в список. Итак, в конкретном примере у нас будет (извините, я просто посчитаю среднее значение):
Я не очень разбираюсь в Python, поэтому я решил заполнить список списков теми значениями, для которых разница в 200 между n-м и следующим n+ 1, а затем работать с ним, например:
Код: Выделить всё
[[0,0,0,0,0,0], [620,625,622,710,658], [2150,2142,2569,2600], [21,24,30,45,32,14], [1100,1119,1150] ...]
Мой код для начинающих:
Код: Выделить всё
import numpy as np
import os, time, argparse, matplotlib, glob, datetime, sys, math
path = "/path_to_file/file.csv"
data = np.loadtxt(data, delimiter=',', skiprows=1)
x = [[]]
n_entries = len(data[:,0])
count = 0
m = 0
for n in range(n_entries-1):
if (math.isclose(data[n,1], data[n+1,1], abs_tol = 200)):
x[count][m] = data[n,1]
m += 1
else:
count += 1
m = 0
К сожалению, я получаю такой результат:
Код: Выделить всё
Traceback (most recent call last):
File "/path_to_python_file/file.py", line 49, in
x[count][m] = data[n,1]
IndexError: list assignment index out of range
Во-первых, мне бы хотелось получить объяснение ошибки, хотя, лазая по сети, я чувствую, что мне нужно сначала инициализировать список... но на самом деле я не знаю в принципе его размеры. Во-вторых, я был бы признателен за любые советы о других способах сделать это, если кто-то чувствует себя умнее меня!
Заранее спасибо, ребята!
Подробнее здесь:
https://stackoverflow.com/questions/782 ... numpy-arra