我在numpy中有两个3D浮点数组,分别表示两个Spec_opt <- list()
Spec_opt$freq <- as.double(seq(-10, 19, 0.01))
# subset data
subset1 <- Spec_opt$freq[Spec_opt$freq >= 18 & Spec_opt$freq < 18.5]
subset2 <- Spec_opt$freq[Spec_opt$freq >= 18.5 & Spec_opt$freq < 19]
# split data
split(Spec_opt$freq, cut(Spec_opt$freq, breaks = c(17, 17.5, 18, 18.5, 19)))
加载的相同形状的MR图像。我想计算一个代表图像区域的遮罩,其中两个图像中的任何一个都不为零。我编写了以下简单代码:
nibabel
我遇到以下错误:输入类型不支持ufunc'bitwise_and',并且根据强制转换规则“ safe”不能将输入安全地强制转换为任何受支持的类型
为什么?我认为运算符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
和>
的{{3}}是正确的。首先完成&
运算符,然后完成>
,因此&
操作位于两个大小相同的逻辑数组之间。问题出在哪里?
谢谢
答案 0 :(得分:1)
来自评论:
(x>0)&(x<0)
强制比较为第一。 – hpaulj 19年12月5日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)