Numpymatrix到数组

我正在使用numpy。 我有一个列和N行matrix,我想从N个元素获得一个数组。

例如,如果我有M = matrix([[1], [2], [3], [4]]) ,我想得到A = array([1,2,3,4])

要实现它,我使用A = np.array(MT)[0] 。 有谁知道一个更优雅的方式来获得相同的结果?

谢谢!

如果你想要更可读的东西,你可以这样做:

 A = np.squeeze(np.asarray(M)) 

等价地,你也可以这样做: A = np.asarray(M).reshape(-1) ,但是这样A = np.asarray(M).reshape(-1)不那么容易。

 A, = np.array(MT) 

取决于你所说的优雅,我想是什么,但那就是我会做的

或者你可以尝试避免一些临时工

 A = M.view(np.ndarray) A.shape = -1 

您可以尝试以下变体:

 result=np.array(M).flatten() 
 np.array(M).ravel() 

如果你关心速度, 但是如果你关心记忆:

 np.asarray(M).ravel() 

一个好的方法,这将允许select你喜欢的惯例(行less校,校长…)是

 A = M.flatten() 

检查文档以查看选项

首先, Mv = numpy.asarray(MT) ,它给你一个4×1但是2D数组。

然后,执行A = Mv[0,:] ,它给你你想要的。 你可以把它们放在一起,如numpy.asarray(MT)[0,:]

这将把matrix转换成数组

 A = np.ravel(M).T