estoy tratando de hacer lo siguiente, pero con arreglos numpy:¿Cuál es el equivalente de "zip()" en el numpy de Python?
x = [(0.1, 1.), (0.1, 2.), (0.1, 3.), (0.1, 4.), (0.1, 5.)]
normal_result = zip(*x)
Esto debería dar un resultado de:
normal_result = [(0.1, 0.1, 0.1, 0.1, 0.1), (1., 2., 3., 4., 5.)]
Pero si el vector de entrada es una matriz numpy:
y = np.array(x)
numpy_result = zip(*y)
print type(numpy_result)
(esperado) devuelve un:
<type 'list'>
El problema es que tendré que transformar el resultado en una matriz numpy después de esto.
Lo que me gustaría saber es qué hay si hay una función numpy eficiente que evitará estas transformaciones de ida y vuelta.
añade una dimensión extra a una matriz 2d. Si desea algo similar a lo que OP quería, tendrá que tomar el primer elemento de la matriz dstacked. – benjwadams
Numpy np.stack es lo más cercano a zip para matrices. 'arrays = (x, y); np.stack (matrices, eje = len (matrices)) '. – CMCDragonkai
También hay np.column_stack, que puede ser lo que OP necesita. – RecencyEffect