栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通用将数组元素的邻居堆叠到3-D数组中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通用将数组元素的邻居堆叠到3-D数组中

这可能是一种方法-

import numpy as np# ParametersR = 3  # RadiusM1,N1 = padded.shaperowlen = N1 - R + 1collen = M1 - R + 1# Linear indices for the starting R x R blockidx1 = np.arange(R)[:,None]*N1 + np.arange(R)# Offset (from the starting block indices) linear indices for all the blocksidx2 = np.arange(collen)[:,None]*N1 + np.arange(rowlen)# Finally, get the linear indices for all blocksall_idx = idx1.ravel()[None,None,:] + idx2[:,:,None]# Index into padded for the final outputout = padded.ravel()[all_idx]

这是半径的示例运行

R = 4
-

In [259]: paddedOut[259]: array([[ 5,  5,  0,  3,  3,  3],       [ 5,  5,  0,  3,  3,  3],       [ 7,  7,  9,  3,  5,  5],       [ 2,  2,  4,  7,  6,  6],       [ 8,  8,  8, 10,  1,  1],       [ 6,  6,  7,  7,  8,  8],       [ 6,  6,  7,  7,  8,  8]])In [260]: outOut[260]: array([[[ 5,  5,  0,  3,  5,  5,  0,  3,  7,  7,  9,  3,  2,  2,  4,  7],        [ 5,  0,  3,  3,  5,  0,  3,  3,  7,  9,  3,  5,  2,  4,  7,  6],        [ 0,  3,  3,  3,  0,  3,  3,  3,  9,  3,  5,  5,  4,  7,  6,  6]],       [[ 5,  5,  0,  3,  7,  7,  9,  3,  2,  2,  4,  7,  8,  8,  8, 10],        [ 5,  0,  3,  3,  7,  9,  3,  5,  2,  4,  7,  6,  8,  8, 10,  1],        [ 0,  3,  3,  3,  9,  3,  5,  5,  4,  7,  6,  6,  8, 10,  1,  1]],       [[ 7,  7,  9,  3,  2,  2,  4,  7,  8,  8,  8, 10,  6,  6,  7,  7],        [ 7,  9,  3,  5,  2,  4,  7,  6,  8,  8, 10,  1,  6,  7,  7,  8],        [ 9,  3,  5,  5,  4,  7,  6,  6,  8, 10,  1,  1,  7,  7,  8,  8]],       [[ 2,  2,  4,  7,  8,  8,  8, 10,  6,  6,  7,  7,  6,  6,  7,  7],        [ 2,  4,  7,  6,  8,  8, 10,  1,  6,  7,  7,  8,  6,  7,  7,  8],        [ 4,  7,  6,  6,  8, 10,  1,  1,  7,  7,  8,  8,  7,  7,  8,  8]]])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号