本文介绍了使用最常见的值更改numpy数组的结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用模式"将4 * 6尺寸的栅格数据缩小为2 * 3尺寸,即2 * 2像素以内的最常用值?
How can I downscale the raster data of 4*6 size into 2*3 size using 'mode' i.e., most common value with in 2*2 pixels?
import numpy as np
data=np.array([
[0,0,1,1,1,1],
[1,0,0,1,1,1],
[1,0,1,1,0,1],
[1,1,0,1,0,0]])
结果应为:
result = np.array([
[0,1,1],
[1,1,0]])
推荐答案
请参考以获取完整说明.以下代码将计算出您想要的结果.
Please refer to this thread for a full explanation. The following code will calculate your desired result.
from sklearn.feature_extraction.image import extract_patches
data=np.array([
[0,0,1,1,1,1],
[1,0,0,1,1,1],
[1,0,1,1,0,1],
[1,1,0,1,0,0]])
patches = extract_patches(data, patch_shape=(2, 2), extraction_step=(2, 2))
most_frequent_number = ((patches > 0).sum(axis=-1).sum(axis=-1) > 2).astype(int)
print most_frequent_number
这篇关于使用最常见的值更改numpy数组的结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!