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

Nesting List within a List and Numpy Arrays

如何在列表或数组的每个单元格中插入一些矩阵(如图像),然后将每个矩阵用作数组(如 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 个)

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

for i, dcmfile in dcmfiles:

此处您正在遍历 dcmfile 的元素,因此 for .. in 语句将 return 一次操作一个元素。但是,您要求两个元素,即 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 是字典