[英]Numpy array exclude some elements
training_images = np.array([i for i in images if i not in validation_images])
以上是錯誤的(如下面的評論中所述)。 這樣做的正確和更快的方法是什么?
我的validation_images 只是
validation_images = images[::6]
並且圖像的形狀是 (60000, 784)。 這是一個 numpy 數組。
目前的方法是不可接受的,因為它太慢了。
我總是對這些事情使用布爾掩碼,你可以考慮:
# 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 數組上的數學運算按元素工作,因此取模( %
) 將在每個元素上執行並返回另一個具有相同形狀的數組。 != 0
也適用於元素,並比較模數是否不為零。 所以掩碼只是一個包含False
的數組,其中值不是int * 6
和True
。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.