我正在实现FFT作为我的作业的一部分。我的问题在于使用位反转来洗牌数据元素的实现。我收到以下警告:
DeprecationWarning: 使用非整数而不是整数将在将来导致错误。
data[x],data[y] = data[y],data[x]
而自动评分系统(由大学提供)返回以下内容:
错误:只有整数、切片(:)、省略号(...)、numpy.newaxis(None)和整数或布尔数组是有效的索引。
我的代码是:
我已经实现了fft函数,但在我解决这个洗牌函数之前它无法正常工作。我认为问题在于我的数据类型是'float64',而我可能错误地将其用作整数,但我不知道如何解决这个问题。
DeprecationWarning: 使用非整数而不是整数将在将来导致错误。
data[x],data[y] = data[y],data[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',而我可能错误地将其用作整数,但我不知道如何解决这个问题。