1
想想看,我有一個ndarray重建的ndarray:numpy的 - 逐步通過過濾unneded成員
all_data.shape
(220000, 28, 28)
type(all_data)
numpy.ndarray
我想去在這個陣列中的每個成員,並篩選出那些我不想要的。因此,我想獲得完全相同形狀的新ndarray。
喜歡的東西:
#save first image and its label in separate array
#we will store unique values
sanitized_data = all_data[0]
sanitized_labels = all_labels[0]
#lets illimnate dupes
#store of existing hashes
hashes = set()
#go over each image
for i in range(0,len(all_labels)):
#check if its hash is in list hashes
if not md5(all_data[i]).hexdigest() in hashes:
#record its hash and copy to new dataset
sanitized_data = np.stack((sanitized_data, all_data[i]))
sanitized_labels = np.stack((sanitized_labels, all_labels[i]))
hashes.add(md5(all_data[i]).hexdigest())
,但我得到:
ValueError: all input arrays must have the same shape
我不知道如何正確地做到這一點。一旦找到我喜歡的數組,我想逐漸沿第一軸添加新數組。不知道如何正確地做到這一點與numpy?我爲此搜索了dstack動作,但看起來像是沿着錯誤的軸線疊加了東西。
「過濾掉」是什麼意思?設置爲0,或刪除。如果刪除元素,則無法保留相同的形狀。 – hpaulj
我可以建議在Python會話中拉起numpy,製作一些具有各種形狀的小陣列,並練習將它們沿不同的軸進行連接。 'np.concatenate'是基本動作。 'hstack','dstack'等只是調整一些軸的尺寸和concatatenate。不要在黑暗中徘徊。用小而可觀的東西練習。 – hpaulj
最好在列表中累積組件數組,並將'concatenate'一次應用於整個列表。當你走的時候也要進入習慣檢查維度。 – hpaulj