training_images = np.array([i for i in images if i not in validation_images])
以上是错误的(如下面的评论中所述)。这是一个正确而快捷的方法吗?
我的validation_images只是
validation_images = images[::6]
并且图像的形状是(60000,784)。 这是一个numpy数组。
目前的方法是不可接受的,因为它太慢了。
答案 0 :(得分:4)
我总是使用boolean masks来做这些事情,你可以考虑:
# Mask every sixth row
mask = (np.arange(images.shape[0]) % 6) != 0
# Only use the not masked images
training_images = images[mask]
验证集将是每个被屏蔽的元素:
validation_images = images[~mask]
numpy数组上的数学运算在元素方面是有效的,因此对每个元素执行modulo(%
)并返回另一个具有相同形状的数组。 != 0
也可以按元素方式工作,并比较模数是否为零。因此,掩码只是一个包含False
的数组,其值不是int * 6
,而是True
。
答案 1 :(得分:0)
Z = np.linspace(0,1,12)[1:-1]
#Create a vector of size 10 with values ranging from 0 to 1, both excluded
print(Z)