unir una transponer producto norma multiplicación matriz matrices inversa elementos como codigo clase agregar python arrays list numpy append

python - una - TypeError: solo las matrices de enteros con un elemento se pueden convertir en un índice 3



transponer matriz python (1)

El problema es justo como lo indica el error, time_list es una lista de python normal y, por lo tanto, no puede indexarla usando otra lista (a menos que la otra lista sea una matriz con un solo elemento). Ejemplo -

In [136]: time_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] In [137]: time_list[np.arange(5,6)] Out[137]: 6 In [138]: time_list[np.arange(5,7)] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-138-ea5b650a8877> in <module>() ----> 1 time_list[np.arange(5,7)] TypeError: only integer arrays with one element can be converted to an index

Si quieres hacer ese tipo de indexación, deberías hacer que time_list numpy.array . Ejemplo -

In [141]: time_list = np.array(time_list) In [142]: time_list[np.arange(5,6)] Out[142]: array([6]) In [143]: time_list[np.arange(5,7)] Out[143]: array([6, 7])

Otra cosa a tener en cuenta es que en tu ciclo de while , nunca aumentas j , por lo que puede terminar con un ciclo infinito, también deberías aumentar j en cierta cantidad (quizás time_interval ?).

Pero de acuerdo con el requisito que ha publicado en los comentarios -

axe_x debe ser una matriz 1d de flotadores generados a partir de la lista time_list

Debería usar .extend() lugar de .append() , .append crearía una lista de arreglos para usted. Pero si necesita una matriz 1D, necesita usar .extend() . Ejemplo -

time_list = np.array(time_list) while j < np.size(time_list,0)-time_interval: if (not np.isnan(heights[j])) and (not np.isnan(heights[j+time_interval])): axe_x.extend(time_list[np.arange(j+n,j+(time_interval-n))]) j += time_interval #Or what you want to increase it by.

Estoy teniendo este error en el título, y no sé qué está mal. Funciona cuando uso np.hstack en lugar de np.append, pero me gustaría hacer esto más rápido, así que usa append.

time_list una lista de flotadores

alturas es un 1d np.array de flotadores

j = 0 n = 30 time_interval = 1200 axe_x = [] while j < np.size(time_list,0)-time_interval: if (not np.isnan(heights[j])) and (not np.isnan(heights[j+time_interval])): axe_x.append(time_list[np.arange(j+n,j+(time_interval-n))])

File "....", line .., in <module> axe_x.append(time_list[np.arange(j+n,j+(time_interval-n))]) TypeError: only integer arrays with one element can be converted to an index