I fft als Teil meiner Hausaufgaben ist die Umsetzung. Mein Problem liegt in der Implementierung von Shuffling Datenelemente mit Bit-Umkehrung. Ich erhalte die folgende Warnung:nur ganze Zahlen, Scheiben (`:`), Auslassungszeichen (`...`), numpy.newaxis (`None`) und integer oder boolean Arrays gelten Indizes
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]
Und das Auto-Grading-System (von der Universität zur Verfügung gestellt) gibt Folgendes zurück:
error: only integers, slices (
:
), ellipsis (...
), numpy.newaxis (None
) and integer or boolean arrays are valid indices.
Mein Code ist:
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
ich bereits umgesetzt habe, Funktion für fft, aber es wird nicht funktionieren, bis ich diese Shuffling-Funktion funktioniert. Ich denke das Problem ist, dass meine Daten vom Typ 'float64' sind und ich könnte es als eine ganze Zahl benutzt haben, aber ich weiß nicht, wie ich es lösen kann.
Was ist der Wert 'Y', wenn Sie diesen Fehler erhalten? – Barmar