首页 > 解决方案 > 如何在不使用 Python 重塑的情况下更改矩阵的维度

问题描述

下面是 (3*3) 的矩阵

a_matrix=np.array([[2,3,5],[3,2,7],[1,4,2]]) 

我想把它改成 (9*1) 这是

[[2],[3],[5],[3],[2],[7],[1],[4],[2]]

问题是我需要在不使用 numpy 中的 reshape 方法的情况下执行此操作。顺便说一句,以下是我所做的,这是错误的。有人可以帮我吗?顺便说一句,**我不能使用那些预定义的方法来做到这一点,我必须通过我自己的方法来实现它。**.任何帮助表示赞赏!

import numpy as np   
a_list=[]
a_matrix=np.array([[2,3,5],[3,2,7],[1,4,2]]) #3*3 matrix
for i in range(3):
   a_list.extend(a_matrix[i,:])
a_list=np.asarray(a_list) #To convert the list to numpy array
print(a_list.T.shape) #To print the shape of transpose

--->(9,) # 我想要 (9,1) 而不是 (9,)

标签: pythonnumpyshapes

解决方案


展平它并使用列表理解

result = np.array([[x] for x in a_matrix.ravel()])

推荐阅读