【发布时间】:2021-03-31 00:15:10
【问题描述】:
我想使用向量 u 和 numpy.compress() 方法来减少 NumPy 矩阵,首先遍历行然后遍历列。现在我的代码如下所示:
n = 4 #number of rows/columns
square_matrix = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
u = np.array([1,0,1,0])
v = []
for i in range(n):
v.append(np.compress(u,square_matrix[i]))
print(v)
我得到以下输出:
[array([1, 3]), array([5, 7]), array([ 9, 11]), array([13, 15])]
我有两个问题:
- 现在如何从输出中再次创建矩阵。
- 如何对列重复相同的过程。 (我最初的想法是使用
u的转置,如下所示:
for j in range((len(v_matrix[0])-1)):
w.append(np.compress(u.transpose(),v_matrix[:][j]))
【问题讨论】:
-
u是 1d,所以转置不会改变任何东西。看起来有点像您只阅读了np.compress文档的一部分,而忽略或不理解axis部分。