我正在尝试向我的图像数据集添加新列。
示例代码:
import numpy as np
A = np.arange(240).reshape(3,4,4,5)
print(type(A))
print(A.shape)
B = np.concatenate([A, np.ones((A.shape[0],4,4,5,1),dtype=int)], axis=1)
打印(B.shape)
给出错误:
ValueError: all the input arrays must have same number of dimensions
将此视为读取图像的m个样本(nH =高度,nW =权重,nC =通道)。 数据集具有形状(m,nH,nW,nC),现在我想添加额外的列,反映图像是"好"例子或"坏"对象的例子。
因此,想要创建一个数据集,在数据集中添加标签以形成形状:(m,nH,nW,nC,l)其中l代表标签,可以具有0或1的值。
我怎样才能实现这一目标?提前谢谢。
答案 0 :(得分:0)
您不需要明确添加第五列。只需重塑并添加第五维。
import numpy as np
A = np.arange(240).reshape(3,4,4,5,1) # add the fifth dimension here
print(type(A))
print(A.shape)
设置"好"或者"坏"标签,只需访问A的最后一个维度
答案 1 :(得分:0)
更简单,没有重塑:
A = np.random.rand(3, 4, 4, 5)
B = A[None] # Append a new dimension at the beginning, shape (1, 3, 4, 4, 5)
B = A[:,:,None] # Append a new dimension in the middle, shape (3, 4, 1, 4, 5)
B = A[:,:,:,:,None] # Append a new dimension at the end, shape (3, 4, 4, 5, 1)
基本上,无的位置表示添加新维度的位置。