我正在使用numpy . 我有一个包含1列和N行的矩阵,我想从N个元素中获取一个数组 .
例如,如果我有 M = matrix([[1], [2], [3], [4]]) ,我想得到 A = array([1,2,3,4]) .
M = matrix([[1], [2], [3], [4]])
A = array([1,2,3,4])
为了实现它,我使用 A = np.array(M.T)[0] . 有谁知道更优雅的方式来获得相同的结果?
A = np.array(M.T)[0]
谢谢!
如果您想要更具可读性的东西,可以这样做:
A = np.squeeze(np.asarray(M))
同样地,您也可以这样做: A = np.asarray(M).reshape(-1) ,但这不太容易阅读 .
A = np.asarray(M).reshape(-1)
result = M.A1
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.matrix.A1.html
matrix.A1 1-d base array
A, = np.array(M.T)
取决于你的优雅我的意思,但这就是我会做的
您可以尝试以下变体:
result=np.array(M).flatten()
或者你可以尝试避免一些临时性
A = M.view(np.ndarray) A.shape = -1
np.array(M).ravel()
如果你关心速度;但如果你关心记忆:
np.asarray(M).ravel()
首先, Mv = numpy.asarray(M.T) ,它为您提供4x1但2D数组 .
Mv = numpy.asarray(M.T)
然后,执行 A = Mv[0,:] ,它可以为您提供所需的内容 . 你可以将它们放在一起,如 numpy.asarray(M.T)[0,:] .
A = Mv[0,:]
numpy.asarray(M.T)[0,:]
这会将矩阵转换为数组
A = np.ravel(M).T
8 回答
如果您想要更具可读性的东西,可以这样做:
同样地,您也可以这样做:
A = np.asarray(M).reshape(-1)
,但这不太容易阅读 .https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.matrix.A1.html
取决于你的优雅我的意思,但这就是我会做的
您可以尝试以下变体:
或者你可以尝试避免一些临时性
如果你关心速度;但如果你关心记忆:
首先,
Mv = numpy.asarray(M.T)
,它为您提供4x1但2D数组 .然后,执行
A = Mv[0,:]
,它可以为您提供所需的内容 . 你可以将它们放在一起,如numpy.asarray(M.T)[0,:]
.这会将矩阵转换为数组