import numpy as np
w,h = 28,28
class1 = np.ones(shape=(100,3,w,h))#用于创建指定形状的数组,并将数组中的元素初始化为1,这里生成了100个,通道数为3的wxh的全1矩阵
class2 = np.random.uniform(size=(100,3,w,h))#是一个均匀分布随机数生成函数,size指定了生成的随机数的数量和形状,生成了100个,通道数为3的wxh的随机数矩阵
label1 = np.zeros(shape=(100))
label2 = np.ones(shape=(100))
data = np.concatenate([class1,class2],axis=0)#将随机生成的两类数据沿着0轴方向进行拼接,axis=0代表沿着数组的垂直方向拼接
label = np.concatenate([label1,label2],axis=0)#同理,将标签进行拼接
dataset = np.array([i for i in zip(data,label)])
np.save('dataset',np.array(dataset))
这里是想随机生成数据和标签将其做成一个数据集,感觉代码编写的没有错误,为什么就会报错说维度不行呢??可以打印出来zip,但是将它放到dataset里面将其保存为npy文件就不可以,有没有人知道哪里错了嘛,还请赐教,感谢感谢
【以下回答由 GPT 生成】
import numpy as np
w,h = 28,28
class1 = np.ones(shape=(100,3,w,h))
class2 = np.random.uniform(size=(100,3,w,h))
label1 = np.zeros(shape=(100))
label2 = np.ones(shape=(100))
data = np.concatenate([class1,class2],axis=0)
label = np.concatenate([label1,label2],axis=0)
dataset = np.array(list(zip(data,label)))
np.save('dataset', dataset)
上面的代码中,你没有传递需要保存的文件的扩展名。np.save
函数默认将文件保存为.npy
格式。你可以通过在文件名称后面加上扩展名.npy
来保存文件。所以,你可以让最后一行代码为np.save('dataset.npy', dataset)
。
希望这对你有所帮助!