Я использую fft как часть своей домашней работы. Моя проблема заключается в реализации перетасовки элементов данных с использованием инверсии битов. Я получаю следующее предупреждение:
DeprecationWarning: использование нецелого числа вместо целого приведет к ошибке в будущем.
данные [x], данные [y] = данные [y], данные [x]
А система автоматической оценки (предоставляемая университетом) возвращает следующее:
ошибка: допустимыми индексами являются только целые числа, срезы (
:
), многоточие (...
), numpy.newaxis (None
) и целочисленные или логические массивы.
Мой код:
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
Я уже реализовал функцию для fft, но она не будет работать, пока эта функция перемешивания не заработает. Я думаю, проблема в том, что мои данные относятся к типу float64, и я мог использовать их как целое число, но не знаю, как это решить.
y
, когда вы получаете эту ошибку? - person Barmar   schedule 22.01.2016