前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习——numpy数组切片

Python学习——numpy数组切片

原创
作者头像
Sparkle^
修改2022-05-10 10:21:20
1.6K0
修改2022-05-10 10:21:20
举报
文章被收录于专栏:知识锦囊知识锦囊

关于索引

从左到右索引默认0开始,从右到左索引默认-1开始。

切片图示
切片图示

1. 一维数组

通过冒号分隔切片参数start:stop:step来进行切片操作。

代码语言:javascript
复制
import numpy as np
a=[1,2,3.4,5]

1.1 一个参数:a[i]

返回与该索引相对应的单个元素。

1.2 两个参数:b = a[i:j]

表示复制 a[i] a[j-1] ,以生成新的list对象。(左闭右开)

i 缺省时:默认为0。即 a[:n] 相当于 a[0,n]

j 缺省时:默认为 len(alist)。即 a[m:] 相当于 a[m,len(a)] 。

i 和 j 都缺省时,a[:] 相当于 完整复制 a

代码语言:javascript
复制
print(a[-1])     取最后一个元素
    结果:[5]
    
print(a[:-1])     除了最后一个取全部
    结果:[ 1 2 3 4 ]
    
print(a[1:])     取第二个到最后一个元素
    结果:[2 3 4 5]

1.3 三个参数:b = a[i:j:s]

s表示步进,缺省为1。(-1时表示翻转读取)

代码语言:javascript
复制
s='abcdefg'
print(s[0:4] #输出abcd
print(s[0:4:2]) #步长为 2(间隔一个位置)来截取,输出ac

s<0时:i 缺省时,默认为-1j 缺省时,默认为-len(a)-1

a[::-1]相当于a[-1:-len(a)-1:-1] ,即从最后一个元素到第一个元素复制一遍。

代码语言:javascript
复制
print(a[::-1])     取从后向前(相反)的元素
结果:[ 5 4 3 2 1 ]
 
print(a[2::-1])     取从下标为2的元素**翻转读取**
结果:[ 3 2 1 ]

2. 二维数组

X[n0,n1]是通过numpy库引用二维数组或矩阵中的某一段数据集的一种写法。

代码语言:javascript
复制
import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
#X 是一个二维数组,维度为 0 ,1;第 0 层 [] 表示第 0 维;第 1 层 [] 表示第 1 维;

2.1 取元素X[n0,n1]

表示取第0维第n0个元素,继续取第1维第n1个元素

代码语言:javascript
复制
# X[n0,n1] 表示第 0 维 取第n0 个元素 ,第 1 维取第 n1 个元素
print(X[1,0])

# 结果:
10

2.2 切片X[s0:e0,s1:e1]

表示取 第0维第 s0 到 e0 个元素,继续取 第1维 第 s1 到 e1 个元素(左闭右开)

代码语言:javascript
复制
# X[1:3,1:3] 表示第 0 维 取 (1:3)元素 ,第 1 维取第(1:3) 个元素
print(X[1:3,1:3])

# 结果:
[[11 12]
 [21 22]]

2.3 切片特殊情况X[:e0,s1:]

代码语言:javascript
复制
# X[:n0,:n1] 表示第 0 维 取 第0 到 第n0 个元素 ,第 1 维取 第0 到 第n1 个元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 维 取 全部元素 ,第 1 维取 第0 到第n1 个元素
print(X[:,:2])

# X[:,0]) 表示第 0 维 取全部 元素 ,第 1 维取第 0 个元素
print(X[:,0])

# 结果
[[ 0  1]
 [10 11]]
[[ 0  1]
 [10 11]
 [20 21]
 [30 31]]
[ 0 10 20 30]

个人理解:二维数组的切片规则基于一维数组,高维数组的切片只要按照一维数组的规则对每一维进行切片即可。


参考资料:

(28条消息) Python中numpy数组切片:print(a[0::2])、a[::2]、[:,2]、[1:,-1:]、a[::-1]、[ : n]、[m : ]、[-1]、[:-1]、[1:]等的含义(详细)_锵锵锵锵~蒋的博客-CSDN博客_[::2]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于索引
  • 1. 一维数组
    • 1.1 一个参数:a[i]
      • 1.2 两个参数:b = a[i:j]
        • 1.3 三个参数:b = a[i:j:s]
        • 2. 二维数组
          • 2.1 取元素X[n0,n1]
            • 2.2 切片X[s0:e0,s1:e1]
              • 2.3 切片特殊情况X[:e0,s1:]
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档