numpy的二维数组的切片索引

#coding=utf-8
import numpy as np
a=np.arange(12)
print(a)
#结果:[ 0  1  2  3  4  5  6  7  8  9 10 11]

#reshape对一维数组进行修改形状 (4,3)修改为4行3列
a=a.reshape((4,3))
print(a)
#结果:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]

二维索引的使用
#索引的使用,获取第三行
print(a[2])
#结果:[ 6  7  8]

#索引的使用,获取第二行第三列
print(a[1][2])
#结果:5

二维切片的使用

#切片的使用,[行进行切片,列进行切片] 即[start:stop:step,start:stop:step]
#获取所有行
print(a[:,:])
#结果:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]



#获取所有行,部分列 {所有行,第二列}
print(a[:,1])
#结果:[ 1  4  7 10]

#获取所有行,部分列 {所有行,第一、二列}
print(a[:,0:2])
#结果:
[[ 0  1]
 [ 3  4]
 [ 6  7]
 [ 9 10]]
 


#获取所有列,部分行 {所有列,获取行的步长为2}
print(a[::2,:])
#结果:
[[0 1 2]
 [6 7 8]]
 
#获取所有列,部分行 {所有列,获取行第一、第二行}
print(a[0:2,:])
#结果:
[[0 1 2]
 [3 4 5]]



#获取部分行,部分列 {行的奇数行,列的第一、第二列}
print(a[::2,0:2])
#结果:
[[0 1]
 [6 7]]

坐标获取 [行,列]

#获取第2行第3列
print(a[1][2]) #结果:5
print(a[1,2])  #结果:5


#同时获取不同行不同列 {获取第2行第3列,第3行第1列}
print(a[1,2],a[2,0])
#结果:{但不是数组形式,可以再通过np.array()转换}
5 6

print(np.array([a[1,2],a[2,0]]))
#结果:[5 6]

#使用坐标获取[(1,2),(2,0)],(1,2)均为行号,(2,0)均为列号,且1和2会自动结合,2和0会自动结合
print(a[(1,2),(2,0)])
#结果:[5 6]

二维索引为负数

#获取最后一行
print(a[-1])
#结果:[ 9 10 11]

#行倒序
print(a[::-1])
#结果:
[[ 9 10 11]
 [ 6  7  8]
 [ 3  4  5]
 [ 0  1  2]]


#行倒序,列倒序
print(a[::-1,::-1])
#结果:
[[11 10  9]
 [ 8  7  6]
 [ 5  4  3]
 [ 2  1  0]]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值