1
は私がndarrayを持っていることを考えてみましょうunnededメンバーをフィルタリングすることによりndarrayを再構築:私はこの配列の各メンバーの上に行くと、私はしたくないものをフィルタリングしたいnumpyのは - インクリメンタル
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アクションをGoogleで検索しましたが、それは間違った軸に沿ってものを積み重ねているようです。コメントからコピー
「フィルターアウト」とはどういう意味ですか? 0に設定するか、削除してください。要素を削除すると、同じ形状を保持することはできません。 – hpaulj
Pythonセッションでnumpyをプルアップし、さまざまな形状の小さな配列を作成し、異なる軸に沿ってそれらを連結して練習することをお勧めします。 'np.concatenate'は基本的な動作です。 'hstack'、' dstack'などは、次元を調整して軸を連結するだけです。暗闇の中で遭遇しないでください。小さくて観察可能なもので練習してください。 – hpaulj
リストにコンポーネント配列を累積し、リスト全体に 'concatenate'を一度適用する方が良いでしょう。また、あなたが進むにつれて寸法をチェックする習慣を身につけてください。 – hpaulj