Numpy矩阵到数组

我正在使用numpy . 我有一个包含1列和N行的矩阵,我想从N个元素中获取一个数组 .

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

为了实现它,我使用 A = np.array(M.T)[0] . 有谁知道更优雅的方式来获得相同的结果?

谢谢!

回答(8)

2 years ago

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

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

同样地,您也可以这样做: A = np.asarray(M).reshape(-1) ,但这不太容易阅读 .

2 years ago

A, = np.array(M.T)

取决于你的优雅我的意思,但这就是我会做的

2 years ago

您可以尝试以下变体:

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

2 years ago

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

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

2 years ago

np.array(M).ravel()

如果你关心速度;但如果你关心记忆:

np.asarray(M).ravel()

2 years ago

首先, Mv = numpy.asarray(M.T) ,它为您提供4x1但2D数组 .

然后,执行 A = Mv[0,:] ,它可以为您提供所需的内容 . 你可以将它们放在一起,如 numpy.asarray(M.T)[0,:] .

2 years ago

这会将矩阵转换为数组

A = np.ravel(M).T