为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用带有布尔数组的 np.infs 将数组的所有索引归零?

如何使用带有布尔数组的 np.infs 将数组的所有索引归零?

Helenr 2021-10-05 16:20:25
使用ord()。word = input("Enter a word: ")for letter in word:    print(letter + ': ', ord(letter))
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

输入:


In [77]: X    

Out[77]: 

array([[inf,  1., inf],

       [inf,  2.,  4.],

       [ 3.,  4.,  5.]])


In [78]: M 

Out[78]: 

array([[1, 0, 0],

       [0, 1, 0],

       [0, 1, 0]])

方法


首先,我们需要反转掩码M,然后使用numpy.where; 有了这些索引,我们就可以将原始数组中的元素设置为零,方法如下:


# inverting the mask

In [59]: M_not = np.logical_not(M)


In [80]: M_not

Out[80]: 

array([[False,  True,  True],

       [ True, False,  True],

       [ True, False,  True]])


# get the indices where `True` exists in array `M_not`

In [81]: indices = np.where(M_not) 


In [82]: indices 

Out[82]: (array([0, 0, 1, 1, 2, 2]), array([1, 2, 0, 2, 0, 2]))


# zero out the elements

In [84]: X[indices] = 0


In [61]: X 

Out[61]: 

array([[inf, 0., 0.],

       [0., 2., 0.],

       [0., 4., 0.]])

PS反转掩码不应理解为矩阵反转。应该理解为翻转布尔值(True--> False; False--> True)


查看完整回答
反对 回复 2021-10-05
  • 1 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信