如何在numpy中执行以下操作?
>选择包含超过50%0值的数组的所有行.
>从满足1的所有行中选择第一个n(比如说2个)行.
>执行某些操作并将修改后的行放在零数组的相同索引上,其形状等于1.
以下结果导致数组中没有分配新值:
In [177]: a = np.array([[0,3],[4,5,6],[7,0],[10,11,12],[13,14,15]]) b = np.zeros_like(a) a Out[177]: array([[ 0,[ 4,[ 7,15]]) In [178]: # select all rows containg note more than 50% 0 values percent = np.sum(a == 0,axis=-1) / float(check.shape[1]) percent = percent >= 0.5 slice = np.invert(percent).nonzero()[0] In [183]: # select first two rows satisfying 'slice' a[slice][0:2] Out[183]: array([[ 4,12]]) In [182]: # do something and place modified rows on same index of zero array b[slice][0:2] = a[slice][0:2] * 2 In [184]: b Out[184]: array([[0,[0,0]])
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。