python x[:] x[::] x[:::]用法

本文详细介绍了Python中列表和数组的切片操作方法,包括正向和逆向索引、选取特定元素及子集等技巧,并通过实例展示了如何利用这些方法高效地处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python x[:] x[::]用法总结

x[:,0]
# 二维数组取第1维所有数据
x[:,1]
# 第2列
x[0,:]
# 第1行
x[3,:]
# 第4行
x[1:4,:]
# 第一二三行

 

x[:,n]或者x[n,:]

x[:,n]表示在全部数组(维)中取第n个数据,直观来说,x[:,n]就是取所有集合的第n个数据, 

 

x[n,:]表示在n个数组(维)中取全部数据,直观来说,x[n,:]就是取第n集合的所有数据, 

x[1,:]即取第一维中下标为1的元素的所有值,输出结果:

举例说明:

import numpy as np  
  
X = np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]])  
print X[:,0]  

>>>[0 2 4 6 8 10 12 14 16 18]   


print X[1,:]  

>>>[2 3] 

总结一下:

  • 无论是左边还是右边逗号都要靠近冒号:
  • 如果冒号:的左边或者右边还有冒号,这时候就说明其中一个冒号代表的是范围(eg:1:5 从1到4)
  • 如果冒号:左边或者右边没有任何东西,那么这时候代表全体
  • [a:b] 对a的改变是行的改变,对b的改变是队列的改变

再高维度的处理方式是相同的,这里我们只讲解三维和二维的使用。

对于X[:,0];

是取二维数组中第一维的所有数据

对于X[:,1]

是取二维数组中第二维的所有数据

对于X[:,m:n]

是取二维数组中第m维到第n-1维的所有数据

对于X[:,:,0]

是取三维矩阵中第一维的所有数据

对于X[:,:,1]

是取三维矩阵中第二维的所有数据

对于X[:,:,m:n]

是取三维矩阵中第m维到第n-1维的所有数据

出现一个新的问题:负数出现了应该怎么理解?

x=[1,2,3,4,5,6,7,8,9,10]
x[-3:0]
x[:-3]

结果:

>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> x[-3:]
[8, 9, 10]
>>> x[:-3]
[1, 2, 3, 4, 5, 6, 7]

总结规律:

  • 负数在左侧,则从后往前数n个
  • 负数在右侧,则是排除了后n个

 

python 中的[::-1]

for value in rang(10)涉及的数字倒序输出:

for value in rang(10)[::-1]涉及的数字倒序输出:

一、反转

这个是python的slice notation的特殊用法。

a = [0,1,2,3,4,5,6,7,8,9]
b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象
b = a[1:3] 那么,b的内容是 [1,2]
当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
当i,j都缺省时,a[:]就相当于完整复制一份a了

b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。所以你看到一个倒序的东东。

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值