numpy 切片

参考文献:
https://www.zmonster.me/2016/03/09/numpy-slicing-and-indexing.html

https://www.quora.com/What-do-the-dots-mean-in-Python

python切片总结:

  1. 切片的形式arr[a:b,c:d,e:f]。 其中的a:b,c:d是不同维度的切片, 用逗号分割,代表不同的维度。切片从最外面的括号逐层向里读,比如下图的arr1是4*2*3的维度,arr1[0] = [[10,20,30],[40,50,60],[70,80,90]], arr1[0:2, 0] = [[10 20 30][11 22 33]],其中第一步arr1[0:2]选择了[[[10,20,30],[40,50,60]],[[11,22,33],[44,55,66]]]之后再选择每一个的.note:可以理解为不断嵌套的for循环。for item1 in dimension1 choose[a:b], for item2 in dimension2 choose[c:d]
import numpy as np
arr1 = np.array([
[[10,20,30],[40,50,60]],
[[11,22,33],[44,55,66]],
[[11,22,33],[44,55,66]],
[[11,22,33],[44,55,66]],
])
  1. 冒号(即 :)代表从第一个到最后一个,即该维度所有的元素,其实和普通的a:b无本质差别
  2. 可以用…代表多个冒号:
import numpy as np

arr = np.arange(24).reshape((2, 3, 4))

print arr[1, ...]               # 等价于 arr[1, :, :]
print arr[..., 1]               # 等价于 arr[:, :, 1]



[[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
[[ 1  5  9]
 [13 17 21]]
import numpy as np
a = np.array(
    [[[1, 1, 1.1, 0.1],
     [1, 1, 1.2, 0.2],
     [1, 1, 1.3, 0.3]],

    [[1, 1, 1.4, 0.4],
     [1, 1, 1.5, 0.5],
     [1, 1, 1.6, 0.6]],

    [[1, 1, 1.7, 0.7],
     [1, 1, 1.8, 0.8],
     [1, 1, 1.9, 0.9]]])
print(a[:,:,-1])
print(a[...,-1])
output:
[[0.1 0.2 0.3]
 [0.4 0.5 0.6]
 [0.7 0.8 0.9]]
[[0.1 0.2 0.3]
 [0.4 0.5 0.6]
 [0.7 0.8 0.9]]

其他参考资料
https://www.pythoninformer.com/python-libraries/numpy/index-and-slice/在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值