我试图用2和3的标签来索引testdata。但是,当我运行此代码时,它会将数组从2D(100 x 100)转换为3D(100 x 1 x 100)。你知道吗
有人能解释为什么要这么做吗?代码的最后一行是罪魁祸首,但我不知道为什么会这样。你知道吗
labels = testdata[:,0]
num2 = numpy.nonzero(labels == 2)
num2 = numpy.transpose(num2)
num3 = numpy.nonzero(labels == 3)
num3 = numpy.transpose(num3)
num = numpy.vstack([num2,num3])
testdata = testdata[num,:]
当有谜题时,打印中间值。更好的是,在一个交互式shell中运行一个测试用例,这样您就可以检查每个值,并了解发生了什么。跟踪形状。你知道吗
看起来
labels
是一个一维数字数组,如:labels
为2或3的索引:这里有一个关键步骤
transpose
的目的是什么。注意num2
是一个具有一个1d数组的元组。你知道吗转置之后
num2
是一个列数组,(4,1)形状。你知道吗垂直连接它们会产生(6,1)数组:
使用该数组索引1d数组会生成另一个与索引形状相同的数组。索引
x[num,:]
做同样的事情,但是添加了最后一个维度。你知道吗如果我在第1维用(2,5)数组索引(3,4)数组,结果是(2,5,4)数组:
相关问题 更多 >
编程相关推荐