numpy切片(连续切片、不连续切片)

本文介绍了如何使用NumPy库对数组进行切片、元素提取以及不连续多点切片。通过实例展示了切片的不同方式,如按行、列提取,以及如何使用np.take()函数进行不连续切片。强调了范围表达式在单个位置切片时保持维度不变的重要性,并提供了详细的操作示例。
摘要由CSDN通过智能技术生成
>>> a = np.arange(10).reshape(2,5)
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>> a[:1,:3]
array([[0, 1, 2]])
>>> a[:2,:3]
array([[0, 1, 2]])
>>> a[:,:3]
array([[0, 1, 2]])
>>> a[:,3]  # 直接提取某一元素
array([3])  # 维度会少1
>>> a[:,3:4]  # 采用范围进行提取
array([[3]])  # 维度和原来保持一致

→使用范围表达式代表单个位置进行切片可以避免维度减少。

不连续切片时,可以使用np.take()

>>> a
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>> a.take([0],0)  # 第二个位置的0,表示按行提取
array([[0, 1, 2, 3, 4]])  # 第一个位置的0,表示提取第0行
>>> a.take([0],1)  # 第二个位置的1,表示按列提取
array([[0],
       [5]])  # 第一个位置的1,表示提取第1列

然后可以对提取出来的相应行、列,进一步提取,从而实现不连续切片。

>>> a.take([0],0).take([2,4],1)
array([[2, 4]])

参考:

  1. python 对array进行元素提取、范围切片及不连续多点切片:https://blog.csdn.net/txh3093/article/details/106059024
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值