numpy 的一些小技巧

在此记录一些关于 Numpy 使用的技巧

  1. 快速筛选出数组中满足要求的数
x = np.arange(1, 10)  # array([1, 2, 3, 4, 5, 6, 7, 8, 9])
x[(x>1)&(x<6)&(x%2==1)]   # 输出array([3, 5])

numpy贴心地为我们重载好了布尔数组的&运算符,多个条件也不怕。以前我都是用x[np.where(x>1)],但是这样一次只能筛选一个条件。

  1. 找到数组中某个特定数的索引
a = np.array([1, 2, 3])
np.argwhere(a==1)   # 输出 array([[0]])

np.argwhere这个函数的本意是输出数组中非零值的索引,用在这里刚刚好能解决问题。np.argmax只返回一个最大数的索引,因此可以用np.argwhere(a==a.max()) 来找到数组最大数的全部索引。

  1. 连接数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

np.r_[a, b, a]
# array([1, 2, 3, 4, 5, 6, 1, 2, 3])
np.concatenate([a, b, a])
# array([1, 2, 3, 4, 5, 6, 1, 2, 3])

np.r_提供了非常简洁的拼接行向量的方法!与之类似的还有np.c_

  1. 压缩/添加维度
x = np.array([[[0], [1], [2]]])
x.shape
# (1, 3, 1)
np.squeeze(x).shape
# (3,)

np.squeeze把数组多余的维度给“挤压”掉,而np.unsqueeze用于添加一个维度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值