J'applique fft dans le cadre de mes devoirs. Mon problème réside dans la mise en œuvre de la réorganisation des éléments de données en utilisant l'inversion de bits. Je reçois l'avertissement suivant:seuls les entiers, les tranches (`:`), les ellipses (`...`), numpy.newaxis (`None`) et les tableaux entiers ou booléens sont des indices valides
DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future.
data[x], data[y] = data[y], data[x]
Et le système de classement automatique (fourni par l'université) renvoie les éléments suivants:
error: only integers, slices (
:
), ellipsis (...
), numpy.newaxis (None
) and integer or boolean arrays are valid indices.
Mon code est:
def shuffle_bit_reversed_order(data: np.ndarray) -> np.ndarray:
"""
Shuffle elements of data using bit reversal of list index.
Arguments:
data: data to be transformed (shape=(n,), dtype='float64')
Return:
data: shuffled data array
"""
# implement shuffling by reversing index bits
size = data.size
half = size/2;
for x in range(size):
xx = np.int(x)
n = np.int(half)
y = 0
while n > 0:
y += n * np.mod(xx,2)
n /= 2
xx = np.int(xx /2)
if (y > x):
data[x], data[y] = data[y], data[x]
return data
J'ai déjà mis en œuvre la Fonctionne pour fft mais cela ne fonctionnera pas tant que je n'aurai pas cette fonction de brassage. Je pense que le problème est que mes données sont de type 'float64' et je l'ai peut-être utilisé comme un nombre entier mais je ne sais pas comment je peux le résoudre.
Quelle est la valeur de 'y' lorsque vous obtenez cette erreur? – Barmar