python - 定期切片 2D numpy 数组
问题描述
我有一个 300x300 的 numpy 数组,我想定期保留所有元素。具体来说,对于两个轴,我想保留前 5 个元素,然后丢弃 15、保留 5、丢弃 15 等。这应该会产生一个 75x75 元素的数组。如何才能做到这一点?
解决方案
您可以创建一个执行保留/丢弃功能的一维蒙版,然后重复蒙版并将蒙版应用于数组。这是一个例子。
import numpy as np
size = 300
array = np.arange(size).reshape((size, 1)) * np.arange(size).reshape((1, size))
mask = np.concatenate((np.ones(5), np.zeros(15))).astype(bool)
period = len(mask)
mask = np.repeat(mask.reshape((1, period)), repeats=size // period, axis=0)
mask = np.concatenate(mask, axis=0)
result = array[mask][:, mask]
print(result.shape)
推荐阅读
- python - 我想将语言代码添加到路径中,以便它可以是 /language_code
- sql - 如何使 SQL 数据库表中的多个列唯一
- dynamic - CX_SY_STRUCT_COMP_NAME=>illegal_char_in_name 在使用 RTTS 创建类型时
- python - 获得一个普通的 Python
- python - matplotlib:改变条的位置
- html - Bootstrap 4 在 XL 屏幕上将列扩展到侧边栏,否则在两个内容区域之间排序
- typescript - 使用 Typescript 初始化 DataLoader 时出现类型错误
- javascript - 如何在我的 javascript/client-logic 中使用 Django 变量?
- javascript - 如何在悬停表格元素时更改行和列背景颜色?
- python - 在元组列表中查找特定项目的最小索引