import os, glob, numpy as np
files = glob.glob('*.jpg')
indices = np.array([i for i,j in enumerate(files)])
selected_indices = np.random.choice(indices,500,replace=False)
print files[selected_indices]
我无法将索引转换为文件。这样做的好方法是什么?
答案 0 :(得分:5)
import glob
import random
files = glob.glob('*.jpg')
selected_files = random.sample(files, 500)
print(selected_files)
Sample larger than population
时,这两种方法都有问题。因此,如果需要,我们可以使用500
代替min(500, len(files))
。
答案 1 :(得分:2)
问题是glob.glob('*.jpg')
返回一个列表而python不支持:
list[array_of_indices]
相反,请将其作为:
selected_indices = list(np.random.choice(indices,500,replace=False))
print [files[i] for i in selected_indices]
然而,有一种更多更好的方法。 请 请参阅@OlehPrypin's answer