我是Python的新手。我们是否有任何类似的结构,例如Python 2.7
中的MATLAB的Multidimensional structure arrays
,可以处理列表中的许多NDARRAYS。例如,我用different size but all are 4D
有15个层(即layer_X, X=[1,15]
):
>>>type(layer_1)
<type 'numpy.ndarray'>
>>> np.shape(layer_1)
(1, 1, 32, 64)
>>> np.shape(layer_12)
(1, 1, 512, 1024)
我如何分配一个用它们的位置x?
您可以使用字典:
layer_dict = {}
for X in range(1,16):
layer_dict['layer_' + str(X)] = np.ndarray(shape=(1, 1, 32, 64))
这允许存储各种尺寸的数组(以及确切的任何其他数据类型),添加和删除组件。它还使您可以有效访问阵列。
添加图层类型:
layer_dict['layer_16'] = np.ndarray(shape=(1, 1, 512, 1024))
删除一个:
del layer_dict['layer_3']
请注意,这些项目未按顺序存储,但这并不能阻止您使用与初始施工环中类似方法的方法有效地处理。如果要使用有序的词典,则可以从collections
模块中使用OrderedDict
。
如果有任何特定规则选择每一层的大小,请更新您的问题,我将编辑答案。
这是顺序用法的一个示例:
for X in range(1,16):
temp = layer_dict['layer_' + str(X)]
print type(temp)
temp
的类型是ndarray
,您可以用作任何其他ndarray
。
更详细的用法示例:
for X in range(1,16):
temp = layer_dict['layer_' + str(X)]
temp[0, 0, 2, 0] = 1
layer_dict['layer_' + str(X)] = temp
这里将每一层获取到temp
,修改后,然后将其重新分配给layer_dict
。
您只能使用 list
:
layers = [layer_1, layer_12]