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)
不那么容易。
result = M.A1
http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.A1.html#numpy.matrix.A1
matrix.A1 1-d base array
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