如何为多维数组创建布尔索引?香港专业教育学院还尝试了数据[标签== 0,:,:]
数据的形状(6000、28、28)
标签的形状(6000,1)
new = data[labels == 0]
IndexError:布尔索引与维度1上的索引数组不匹配;维度为28,但相应的布尔维度为1
我能够运行以下内容
new= data[np.where(labels == c)]
但我返回的形状为(num_matching_criteria,28)
答案 0 :(得分:0)
您是否使用numpy数组?当数据和标签都是numpy数组时,它对我有用。
>>> import numpy
>>> a = numpy.arange(24).reshape((4,3,2))
>>> a
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]])
>>> labels = numpy.array([1,0,1, 0])
>>> a[labels > 0]
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[12, 13],
[14, 15],
[16, 17]]])
>>> a[labels == 0]
array([[[ 6, 7],
[ 8, 9],
[10, 11]],
[[18, 19],
[20, 21],
[22, 23]]])
答案 1 :(得分:0)
我能够执行以下操作
sel = np.array(labels == c)[:,0]
slice = data[sel]