It looks like you’re getting a TypeError
when trying to use the indices array in X_train[indices.astype(int)]
. This error can occur if indices
is not a 1D array of integers as expected.
One thing to check is the shape of indices
using indices.shape
. It should be (50000,)
, indicating a 1D array with 50000 elements.
If the shape is correct, you can try converting indices
to a list before indexing:
out_images = [X_train[i] for i in indices.astype(int)]
This list comprehension should extract the elements from X_train
corresponding to the indices in indices
.
Hey Archana,
Interesting doubt, here is the Answer to the Question:-
The error message indicates that X_train
is a list, not a NumPy array, which doesn’t support array indexing. To fix this, convert X_train
to a NumPy array before indexing:
out_images = np.array(X_train)[indices.astype(int)]
This converts X_train
to a NumPy array and then indexes it using the integer indices from indices.astype(int)
.
Hey Archna,
Use list comprehension to select elements from X_train based on the indices:
This iterates over the indices array and selects the corresponding elements from X_train, creating a new list out_images.
out_images = [X_train[i] for i in indices.astype(int)]
Hey Archana,
Convert X_train to a NumPy array before indexing:
This first converts X_train to a NumPy array X_train_np, then indexes it using the integer indices from indices.astype(int) to get out_images.
X_train_np = np.array(X_train)
out_images = X_train_np[indices.astype(int)]