numpy索引,axis,stack功能理解

本文深入探讨NumPy中的高级索引技巧,包括布尔索引的数字转换、多维数组的索引处理、以及使用np.ix_函数的详细解析流程。同时,解释了stack、vstack和hstack函数在不同维度数据拼接中的应用。

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

索引

Bool索引, 先转换为数字索引再计算
arr[[ True,  True, False], [False,  False,  True]]  
<=> arr[[ 0,  1], [2]] 
<=>  arr[ [0,1], [2,2] ]
对于 a[ A, B ] 形式的数据
  • 如果A,B格式相同, 返回数据格式与他们相同, A, B分别表示两个维度上的索引.
  • 如果A,B格式不同, 需要通过广播规则填充索引数据, 然后再返回数据, 例如: 对于np.ix_函数解析的具体流程如下:
arr[np.ix_([0,1],[1,2])]  
<=> arr[  [[0],[1]], [[1, 2]]  ]  
<=>  arr[  [[0],[1]], [[1, 2],[1, 2]]  ]  
<=>  arr[  [[0,0],[1,1]], [[1, 2],[1, 2]]  ] 

维度axis含义

  • axis=0 表示沿着第一个括号来操作
  • axis=1 表示沿着第二个括号来操作

stack含义

np.stack(a, axis = n)  
<=> a.transpose(1, 2, 3 ... n-1, 0, n+1 ...) 

vstack含义

  • 维度是1时, 等价于np.concatenate([[a],[b]],axis=0)
  • 维度大于1时, 等价于np.concatenate([a,b],axis=0)

hstack含义

  • 维度是1时, 等价于np.concatenate([a,b],axis=0)
  • 维度大于1时, 等价于np.concatenate([a,b],axis=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值