我有两个numpy变量,包含32000个条目,如下所示:
>>> files
array(['GAN_0.npy', 'GAN_1.npy', 'GAN_10.npy', ..., 'GAN_822.npy',
'GAN_8220.npy', 'GAN_8221.npy'], dtype='<U13')
>>> files.shape
(32000,)
>>> labels
array([1, 1, 1, ..., 1, 1, 1])
>>> np.unique(labels)
array([0, 1])
>>> labels.shape
(32000,)
换句话说,第一个变量是字符串的NumPy矩阵,而另一个是整数的NumPy矩阵。在第一个矩阵中,我有一个图像名称的字符串列表,在另一个矩阵中,整数作为我用来识别它们的标签(以名称GAN_u开头的图像是1,而以名称RAW_u开头的图像是0)
我想知道我是否可以将这32000个条目分成10个子集,每个子集包含3200个图像,不重复,其中1600个条目的名称以RAW_u开头,其他1600个条目的名称以GAN_u开头。图像的名称和标签都是无序的,因此我不能简单地将大矩阵拆分为10个子矩阵。因此,Numpy中是否有任何方法可以从Python中的2个类中创建10个分层且独立的样本子矩阵
附:这两个文件可以在here找到
以下是一个可能的解决方案:
此解决方案保持“GAN*”和“RAW*”文件的相对顺序。此外,创建数组时,初始位置用“GAN*”文件填充,其余位置用“RAW*”文件填充。如果您对这种排序不满意,您可以在创建每个数组后对它们进行洗牌
下面是一个没有循环的解决方案(由@Crazy Coder在其他答案的评论中建议):
我自己的解决方案(基于@CrazyCoder建议)
相关问题 更多 >
编程相关推荐