首页 > 解决方案 > 如何用指定的步骤挑选矩阵的列

问题描述

我有一个 500 行 1024 列的矩阵 A。我想生成一个由 A 中均匀间隔的列组成的矩阵,比如步长为 2^5。我如何在 Numpy 中执行此操作?我没有在我的参考资料中看到这一点。

标签: pythonnumpymatrix

解决方案


您可以只使用切片:

import numpy as np
arr = np.random.rand(512,1024)
step_size = 2 ** 5
arr[:, ::step_size]  # shape is (512, 32)

所以它所做的是保留所有行,同时以所需的步长获取所有列。您可以在以下链接中阅读有关 numpy 索引的信息: https ://numpy.org/doc/stable/user/basics.indexing.html?highlight=indexing#other-indexing-options

您可以将相同的逻辑应用于行或行和列,以获得更复杂的切片。


推荐阅读