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

如何在考虑边界的情况下获取numpy数组中的相邻元素?

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

如何在考虑边界的情况下获取numpy数组中的相邻元素?

import numpy as npa = np.array([0,1,2,3,4,5,6,7,8,9])num_neighbor=3for index in range(len(a)):    left = a[:index][-num_neighbor:]    right= a[index+1:num_neighbor+index+1]    print(index,left,right)

产量

(0, array([], dtype=int32), array([1, 2, 3]))(1, array([0]), array([2, 3, 4]))(2, array([0, 1]), array([3, 4, 5]))(3, array([0, 1, 2]), array([4, 5, 6]))(4, array([1, 2, 3]), array([5, 6, 7]))(5, array([2, 3, 4]), array([6, 7, 8]))(6, array([3, 4, 5]), array([7, 8, 9]))(7, array([4, 5, 6]), array([8, 9]))(8, array([5, 6, 7]), array([9]))(9, array([6, 7, 8]), array([], dtype=int32))

什么时候

a[index-num_neighbor:index]
不起作用的原因
index<num_neighbor
是由于切片规则#3和#4:

鉴于

s[i:j]

如果i或j为负,则索引相对于字符串的结尾:len(s)+ i或len(s)+ j被替换。

从i到j的s切片被定义为索引为k的项目序列,使得i <= k
<j。如果i或j大于len,请使用len。如果省略i或无,则使用0。如果省略j或无,则使用len(s)。如果i大于或等于j,则切片为空。

所以什么时候

index=1
a[index-num_neighbor:index] = a[-2:1] = a[10-2:1] = a[8:1] =[]



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

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

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