输入类型不支持ufunc 'bitwise_and',无法安全强制输入。

问题描述 投票:1回答:1

我在numpy中有两个3D浮动数组,代表两个形状相同的MR图像,加载了以下内容。nibabel. 我想计算一个掩码,代表两幅图像中没有零的区域。我写了下面的简单代码。

nii = nib.load('./T1.nii.gz')
t1 = nii.get_data()
nii = nib.load('./T2.nii.gz')
t2 = nii.get_data()
mask = t1 > 0 & t2 > 0

我得到了以下错误: ufunc 'bitwise_and' 不支持输入类型,并且输入不能被安全地强制到任何支持的类型,根据铸造规则''safe''。

为什么?我想... 先例 o 经营者 >& 是正确的。第一 > 操作员完成后,再进行 &所以 & 操作在两个相同大小的逻辑数组之间。问题出在哪里?

谅谅

python numpy bitwise-operators numpy-ndarray
1个回答
0
投票

从评论中。

(x>0)&(x<0) 强制比较的结果是第一。- hpaulj 十二月 5 '19 在 15:43

我做过的其他比较都是这样的,它们需要封装在 ( ) 如果它们在同一个语句中被评估的话。因此,你可以通过将它们放在另一个变量中来提前评估它们,或者将它们封装为

nii = nib.load('./T1.nii.gz')
t1 = nii.get_data()
nii = nib.load('./T2.nii.gz')
t2 = nii.get_data()

mask1 = t1 > 0
mask = mask1 & (t2 > 0)
© www.soinside.com 2019 - 2024. All rights reserved.