在列表和Numpy数组中嵌套列表

时间:2018-10-22 09:39:23

标签: python concatenation cell-array

如何在列表或数组的每个单元格中插入一些矩阵(如图像),然后将每个矩阵用作数组(如Matlab中的单元格数组)? 我尝试这样做,如以下代码所示:

    a = []
    for dcmfile in dcmfiles:
        dcm_image = pydicom.dcmread(os.path.join(root, dcmfile))
        a.append([dcm_image.pixel_array])
        volume_image = np.concatenate((a, ?), 1)  # problem is in this line because two variables are needed to the "concatenate".

َ此外,我已经检查了以下代码,但出现错误:

    volume_image = {}
    for i, dcmfile in dcmfiles:
        dcm_image = pydicom.dcmread(os.path.join(root, dcmfile))
        volume_image[i] = dcm_image.pixel_array

ValueError:太多值无法解包(预期2)

1 个答案:

答案 0 :(得分:2)

该错误表明,在某些时候,python需要2个对象(值),但仅发送一个。罪魁祸首在:

for i, dcmfile in dcmfiles:

这里您要遍历dcmfile的元素,因此for .. in语句将一次返回一个用于操作的元素。但是,您正在寻找两个元素,即idcmfile,因此会出现错误。

您应该使用:

for i, dcmfile in enumerate(dcmfiles):

如果dcmfiles是可迭代的或位于以下位置:

for i, dcmfile in dcmfiles.iteritems(): # for python 2.x
for i, dcmfile in dcmfiles.items(): # for python 3.x

如果dcmfiles是字典