nd.array.where

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

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

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.apache

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.api

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

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,不然正數,負數都爲Xcode

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)
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息