关于numpy数组索引问题

最主要表现在行列一起索引时会索引行和列同时匹配了,这就造成一个误区,如果要针对某行和某列的值索引就得进行嵌套,纯粹的行 和列除外

np.random.seed(0) #固定随机数
a=np.random.randn(3,4) #生成一个12个数的数列
print(a)

[[ 1.76405235 0.40015721 0.97873798 2.2408932 ]
[ 1.86755799 -0.97727788 0.95008842 -0.15135721]
[-0.10321885 0.4105985 0.14404357 1.45427351]]

#行索引(可以指定顺序)
a[[2,1]]

array([[-0.10321885, 0.4105985 , 0.14404357, 1.45427351],
[ 1.86755799, -0.97727788, 0.95008842, -0.15135721]])

#列索引(可以指定顺序)
a[:,[2,1]]

array([[ 0.97873798, 0.40015721],
[ 0.95008842, -0.97727788],
[ 0.14404357, 0.4105985 ]])

#同时行列索引
a[[2,1],[1,3]] #这样的方法会是造成行列匹配索引,达不到要求,与预想中少2个数,会造成2,1匹配,1和3匹配

array([ 0.4105985 , -0.15135721])

#通过嵌套可以达到预想的4个值
a[[2,1]][:,[1,3]]

array([[ 0.4105985 , 1.45427351],
[-0.97727788, -0.15135721]])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值