以所需的格式合并腌制的.npz文件

时间:2019-09-06 10:03:22

标签: python-3.x numpy

我有多个npz文件,我想将其合并为一个格式类似于“ mnist.npz”的npz.file

mnist.npz的格式为:

((array([[[0, 0, 0, ..., 0, 0, 0],
      [0, 0, 0, ..., 0, 0, 0],
      [0, 0, 0, ..., 0, 0, 0],
      ...,
      [0, 0, 0, ..., 0, 0, 0],
      [0, 0, 0, ..., 0, 0, 0],
      [0, 0, 0, ..., 0, 0, 0]],
      [0, 0, 0, ..., 0, 0, 0]]], dtype=uint8),
 array([5, 0, 4, ..., 5, 6, 8], dtype=uint8))

这里两个数组合并为一个大的npz文件。

我的两个npz数组是:

x_array:

[[[252, 251, 253],
[151, 150, 152],
[ 28,  25,  27],
...,
[ 30,  25,  27],
[ 30,  25,  27],
[ 32,  27,  29]],
[ 23,  18,  20]],

[[ 50,  92, 163],
[ 55,  90, 163],
[ 75, 105, 176],
...,
[148, 197, 242],
[109, 157, 208],
[109, 165, 222]],

[[ 87, 104, 155],
[ 82, 112, 168],
...,
[ 29,  52, 105],
[ 30,  55, 111],
[ 36,  55, 106]]]

y_array:

[1, 1, 1, 1, 1, 1]

当我尝试合并文件时,输出为:

(array([[[252, 251, 253],
    [151, 150, 152],
    [ 28,  25,  27],
    ...,
    [ 30,  25,  27],
    [ 30,  25,  27],
    [ 32,  27,  29]],
    [ 23,  18,  20]]], dtype=uint8),  array([[[ 50,  92, 163],
    [ 55,  90, 163],
    [ 75, 105, 176],
    ...,
    [148, 197, 242],
    [109, 157, 208],
    [109, 165, 222]],

    [ 87, 104, 155],
    [ 82, 112, 168],
    ...,
    [ 29,  52, 105],
    [ 30,  55, 111],
    [ 36,  55, 106]]], dtype=uint8),1, 1, 1, 1, 1, 1)

所以在最后一行中,我的数组的格式为

1, 1, 1, 1, 1, 1

而不是类似的东西:

array([1, 1, 1, 1, 1, 1], dtype=uint8)

我合并两个npz文件的代码是:

data = load('x_array.npz',allow_pickle=True)
lst = data.files

for item in lst:        
    x_train = data[item]

#print((x_item,x_train))

data1 = load('y_array.npz',allow_pickle=True)
lst1 = data1.files

for item in lst1:
    y_train = data1[item]

out1 = (*x_train,*y_train)
np.savez('out1.npz',out1)

print(out1)

有人可以建议我如何将我的(1,1,1,1,1,1)的第二个数组转换为array([1,1,1,1,1,1,1],dtype = uint8)?任何建议都是有帮助的

1 个答案:

答案 0 :(得分:0)

检查完我的代码后,我发现通过更改行

out1 = (*x_train,*y_train)

out1 = (*x_train,y_train)