Изменить форму массива в Numpy - PullRequest
0 голосов
/ 16 июня 2020

У меня есть массив с формой (144,).

У меня есть вектор данных с формой (2,144). Например, два показания с двух датчиков. Каждое показание имеет 144 значений.

Я хотел бы прикрепить временной интервал к каждому показанию датчика, чтобы иметь матрицу (2,144,2): первая ось - это количество датчиков; второй - количество считываний, а третий - количество записей в каждой записи, в данном случае 2, потому что я придерживался временной оси.

Сначала я попытался изменить вектор оси времени, чтобы он соответствовал правильной форме, с:

np.broadcast_to(time_axis,(144,2))
ValueError: operands could not be broadcast together with remapped shapes [original->remapped]: (144,) and requested shape (144,2)

enter image description here

Я также пробовал:

numOfVec = 2
num = 144
time_axis =  np.broadcast_to(time_axis,(numOfVec,num)).T            
# Add time axis
out = np.vstack((time_axis,synthetic.T))

ОБНОВЛЕНИЕ

Я попробовал подсказку, приведенную в комментарии:

time_axis = self.datetime_range(10)
time_axis = np.reshape(time_axis,(1,num))
time_axis = np.repeat(time_axis,numOfVec,axis=0)
# Add time axis
out = np.stack((time_axis,synthetic))

Это работает, но, поскольку мне нужно jsonify данные, результат неверный:

"data": [
        [
            [
                "00:00:00",
                "00:10:00",
                "00:20:00",
                "00:30:00",
              ...
             ]
         ]

Я бы хотел чтобы получить что-то вроде этого:

"data": [
        [
            [
                "00:00:00",
                "19.2"
            ],
            [    
                "00:10:00",
                "29.1"
            ]
        ]
        ]

1 Ответ

0 голосов
/ 17 июня 2020

Я нашел решение

# Convert to 2D array
time_axis = np.reshape(time_axis,(num,1))
# Add third dimensions
time_axis = np.expand_dims(time_axis, axis=0)
# Repeat time axis on third dimension
time_axis = np.repeat(time_axis,numOfVec,axis=0)
# Add time axis to sensor readings by sticking along the second dimension (axis = 2)
out = np.concatenate((time_axis,synthetic),axis=2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...