通过在python中应用布尔掩码(相同大小的布尔矩阵)返回一个矩阵。

我已经生成了一个大小为4的正方形矩阵和一个大小相同的布尔矩阵。

import numpy as np

A = np.random.randn(4,4)
B = np.full((4,4), True, dtype = bool)
B[[0],:] = False
B[:,[0]] = False

下面的代码返回两个大小为4的矩阵,A是所有的随机数,B是所有的布尔运算符,其中第一行和第二列都是假的。

B = [[False, False, False, False],
     [False,  True,  True,  True],
     [False,  True,  True,  True],
     [False,  True,  True,  True]]

我想把B布尔矩阵应用到A中,这样,我得到一个3乘3的A矩阵,其中B为True(B中的元素==True).在numpy中是否有任何逻辑运算符来执行这个操作? 或者我必须通过A和B中的每个元素并比较它们,然后将其分配到一个新的矩阵中?

解决方案:

In [214]: A = np.random.randn(4,4) 
     ...: B = np.full((4,4), True, dtype = bool) 
     ...: B[[0],:] = False 
     ...: B[:,[0]] = False                                                                             
In [215]: A                                                                                            
Out[215]: 
array([[-0.80676817, -0.20810386,  1.28448594, -0.52667651],
       [ 0.6292733 , -0.05575997,  0.32466482, -0.23495175],
       [-0.70896794, -1.60571282, -1.43718839, -0.42032337],
       [ 0.01541418, -2.00072652, -1.54197002,  1.2626283 ]])
In [216]: B                                                                                            
Out[216]: 
array([[False, False, False, False],
       [False,  True,  True,  True],
       [False,  True,  True,  True],
       [False,  True,  True,  True]])

布尔索引(与大小数组匹配)总是产生一个1d数组。 在本例中,它没有选择任何值给 A[0,:]:

In [217]: A[B]                                                                                         
Out[217]: 
array([-0.05575997,  0.32466482, -0.23495175, -1.60571282, -1.43718839,
       -0.42032337, -2.00072652, -1.54197002,  1.2626283 ])

但是,因为其他三行都有3个。True,重塑结果确实会产生一个合理的结果。

In [218]: A[B].reshape(3,3)                                                                            
Out[218]: 
array([[-0.05575997,  0.32466482, -0.23495175],
       [-1.60571282, -1.43718839, -0.42032337],
       [-2.00072652, -1.54197002,  1.2626283 ]])

重塑是否合理取决于元素的总数,以及你自己对数据的解释。

给TA打赏
共{{data.count}}人
人已打赏
未分类

在没有Mahapps.Metro程序集的项目中使用MetroProgressBar控件动画。

2022-9-8 16:19:38

未分类

在jsp页面上显示阵列列表

2022-9-8 16:19:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索