Python——Numpy切片和索引
Python——Numpy切片和索引
Numpy对象可以使用 索引和切片 进行访问和修改
索引下标从 0 开始
总结:
搞懂这个总结就ojbk了。^ _ ^
[]中,逗号,区分的是维度,冒号:区分的是索引,省略号… 用来代替全索引长度
用slice()函数创建切片对象
返回值: 切片对象
语法结构:
slice(start[,stop[,step]])
等价于
a[start:stop:step]
实例:
#创建一个1维数组
import numpy as np
a = np.arange(20)
#访问2到7,间隔为1的元素切片
s = slice(2,7,2)
print(s)
[start:stop:step] 直接传入切片参数
#创建一个1维数组
import numpy as np
a = np.arange(20)
#直接利用[::]切片访问
c = a[2]#取索引二的单个元素
c = a[2:7:1]#2~7步长为1 的元素
c2 = a[10:]#10到最后一个元素
c3 = a[:10]#开始到10
c4 = a[::-1]#取反
c5 = a[:10:-1]#从后10取反到第10个
print(c,'\n',c2,'\n',c3,'\n',c4,'\n',c5)
多维数组使用切片
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print('a[1]:\n',a[1])
print('a[1:]:\n',a[1:])
print('a[::2]:\n',a[::2])
print('a[::-1]:\n',a[::-1])
以上代码,切片中没有 ,号,相当于操作了第一维度中的所有内容
多维度操作
import numpy as np
a = np.array([[1,2,3],[3,4,5],[:8,5,6]])
print('第2行第2个元素:',a[1,1])
切片对象中包含 “…”
切片对象 [] 中包含省略号…
作用: 使得 选择元组的长度 = 数组的维度
如果在行位置使用 … return包含行中元素的ndarray
import numpy as np
a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print('第2列元素',a[::,1])
# 等价于
print('第2列元素',a[...,1])
print('第2行元素',a[1,])
#d等价于
print('第2行元素',a[1,::])
#d等价于
print('第2行元素',a[1,...])
print('第2列开始剩下的所有列\n',a[::,1:])
#等价于
print('第2列开始剩下的所有列\n',a[...,1:])
总结:
[]中,逗号,区分的是维度,冒号:区分的是索引,省略号… 用来代替全索引长度