nd.array.where

MXNet NDArray where 方法详解
本文详细介绍了MXNet框架中NDArray的where方法使用,包括条件选择元素的基本语法及应用示例。通过对比不同条件下的操作结果,展示了where方法在处理多维数组时的灵活性。

http://mxnet.apache.org/api/python/ndarray/ndarray.html#mxnet.ndarray.where

Return the elements, either from x or y, depending on the condition.

Given three ndarrays, condition, x, and y, return an ndarray with the elements from x or y, depending on the elements from condition are true or false. x and y must have the same shape. If condition has the same shape as x, each element in the output array is from x if the corresponding element in the condition is true, and from y if false.

If condition does not have the same shape as x, it must be a 1D array whose size is the same as x’s first dimension size. Each row of the output array is from x’s row if the corresponding element from condition is true, and from y’s row if false.

Note that all non-zero values are interpreted as True in condition.

x = [[1, 2], [3, 4]]
y = [[5, 6], [7, 8]]
cond = [[0, 1], [-1, 0]]

where(cond, x, y) = [[5, 2], [3, 8]]

csr_cond = cast_storage(cond, 'csr')

where(csr_cond, x, y) = [[5, 2], [3, 8]]

X,Y必须同样形状,然后条件可以为同样形状,也可以是一维的;条件为0,才为Y,否则正数,负数都为X

from mxnet import nd

ious = nd.array([[0.1,0.3,0.3],[0.9,0.4,0.01],[0,0.55,2],[0.56,0.77,3],[0.9,0.73,4]])
print(ious)

label = [0. ,1., 1.]
print(label)

flag = nd.ones_like(ious)

y = nd.full(ious.shape,0.5)

for i, hard in enumerate(label):
    if hard == 1.0:
        flag[:,i] = ious[:,i] < 0.7
print(flag)

ious = nd.where(flag,ious,y)
print(ious)

 

 

 

 

 

转载于:https://www.cnblogs.com/TreeDream/p/10209902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值