ValueError:NumPy布尔数组索引赋值不能将0输入值分配给掩码为true的N个输出值

时间:2014-11-03 10:17:08

标签: python numpy

我有一个Dicom文件,我想在体素中应用多个具有不同操作的蒙版。但是,我想保留初始数组中的位置,因为我想重建图像。这就是我所做的:

#The dicom data    
a=dicomm_data.pixel_array
#start function
my_modified_array = np.zeros_like(a)
#mask 1
m1=a[(a>limit_1) & (a<limit_2)]
m1=m1*chosen_number1 + chose_number2
my_modified_array [(a>limit_1) & (a<limit_2)] = m1

#mask 2
m2=a[(a>limit_2+1) & (a<limit_3)]
m2=m1*chosen_number3+chosen_number_4
my_modified_array [(a>limit_2+1) & (a<limit_3)] = m2

我继续使用更多面具。 但是,我收到了标题错误中提到的内容。 我已经阅读了另一篇使用numpy.where函数的帖子,但仍无法修复它。

1 个答案:

答案 0 :(得分:0)

m1为空数组但a[(a>limit_2+1) & (a<limit_3)]不为空时,您将收到错误消息。我想

m2=m1*chosen_number3+chosen_number_4

应该是

m2=m2*chosen_number3+chosen_number_4

这是您与m1一起使用的模式,这将解决错误。