np.where()的简单理解与用法

本文介绍了numpy库中的where函数的两种用法。第一种用法是在给定条件的情况下,将数组中满足条件的元素替换为指定值,不满足的元素保持不变。第二种用法是返回数组中满足条件的元素的索引位置。通过实例展示了这两个功能,帮助理解where函数在数据处理中的应用。

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

https://numpy.org/doc/stable/reference/generated/numpy.where.html

用法一

import numpy as np
np.where(condition, x, y)

condition中需要包含一个待处理的ndarray(这里记为A),那么对于A中的每个元素,如果满足条件,则将这个元素替换为x,否则,将这个元素替换为y。一个例子如下:

import numpy as np

A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3, 1, 0)
print(res)

输出:

[0 0 0 1 1]

即,对于A中的每个元素,逐个对比其是否大于3,是则将对应位置"替换"为1,不是则为0。


用法二

import numpy as np
np.where(condition)

类似的,对于A中的每个元素,检查其是否满足condition,如果是则返回其坐标。一个例子如下:

import numpy as np

A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3)
print(res)

输出:

(array([3, 4], dtype=int64),)

即下标3和下标4处的值满足条件。可以发现,这里返回的其实是一个tuple,这个tuple的维度与数组本身维度一致,用于返回多维的坐标。此外,通过简单套娃也可以将满足条件的值给取出来:

A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3)
print(A[res])

输出:

[4 5]

此时效果等同于直接使用A[A>3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值