Numpy tricks

本文介绍了Numpy的一些实用技巧,包括如何根据排序获取2D矩阵的索引,利用numpy的broadcasting进行不同尺寸矩阵运算,以及如何使用Boolean数组进行K折交叉验证。特别强调了numpy的argsort函数在获取排序索引时的重要性,以及在避免内存消耗方面的方法。
摘要由CSDN通过智能技术生成

1. 排序的mask获取


应用场景:KNN中给定dataset X, Y, 在X中寻找dist最小的那几个的index然后到Y中去获取label。

Given a 2D matrix: data = np.array([[3,1],[2,4]])

  1. 排序

    • 直接 np.sort(data, axis = none) generate a 1D array [1,2,3,4],
    • np.sort if assign axis, e.g. np.sort(data, axis=0) will generate a SAME DIMENSION matrix sorted in given axis. e.g [[2,1],[3,4]] —same holds for HIGH DIMENSION.
  2. 排序,但要求顺序给出index .e.g. 1D matrix x=np.array([2,1,3]), 要给出index ordered_mast = [1,0,2] so x[ordered_mask] = [1,2,3].

image.png

  • 尤其有用的是index=None的情况:注意用np.unravel_index()来把1Dindex还原成2D!!!

image.png

###2. BroadCasting

  • numpy broadcasting真是tricky!
  • 定义用来match different-dim matrix h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值