python arrays numpy

python - Crear una matriz bidimensional con 2 matrices unidimensionales.



arrays numpy (2)

Utilicé numpy y scipy y hay algunas funciones que realmente se preocupan por la dimensión de la matriz. Tengo un nombre de función CovexHull (punto) que acepta el punto como matriz bidimensional.

hull = ConvexHull (puntos)

In [1]: points.ndim Out[1]: 2 In [2]: points.shape Out[2]: (10, 2) In [3]: points Out[3]: array([[ 0. , 0. ], [ 1. , 0.8], [ 0.9, 0.8], [ 0.9, 0.7], [ 0.9, 0.6], [ 0.8, 0.5], [ 0.8, 0.5], [ 0.7, 0.5], [ 0.1, 0. ], [ 0. , 0. ]])

Como se puede ver arriba, los puntos son un numpy con ndim 2.

Ahora tengo 2 matrices numpy diferentes (tp y fp) como esta (por ejemplo, fp)

In [4]: fp.ndim Out[4]: 1 In [5]: fp.shape Out[5]: (10,) In [6]: fp Out[6]: array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.4, 0.5, 0.6, 0.9, 1. ])

Mi pregunta es ¿cómo puedo crear una matriz numpy bidimensional de manera efectiva como puntos con tp y fp?



Si desea combinar dos matrices de 10 elementos 1-d en una matriz de 2 np.vstack((tp, fp)).T lo hará. np.vstack((tp, fp)) devolverá una matriz de forma (2, 10), y el atributo T devuelve la matriz transpuesta con forma (10, 2) (es decir, con las dos matrices 1-d que forman columnas en lugar de filas).

>>> tp = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> tp.ndim 1 >>> tp.shape (10,) >>> fp = np.array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19]) >>> fp.ndim 1 >>> fp.shape (10,) >>> combined = np.vstack((tp, fp)).T >>> combined array([[ 0, 10], [ 1, 11], [ 2, 12], [ 3, 13], [ 4, 14], [ 5, 15], [ 6, 16], [ 7, 17], [ 8, 18], [ 9, 19]]) >>> combined.ndim 2 >>> combined.shape (10, 2)