gpt4 book ai didi

python - 只有整数、切片 (`:` )、省略号 (`...` )、numpy.newaxis (`None` ) 和整数或 bool 数组是有效的索引

转载 作者:IT老高 更新时间:2023-10-28 22:14:59 25 4
gpt4 key购买 nike

我正在实现 fft 作为我作业的一部分。我的问题在于使用位反转来实现混洗数据元素。我收到以下警告:

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]

自动评分系统(由大学提供)返回以下内容:

error: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices.

我的代码是:

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”类型的,我可能将它用作整数,但我不知道如何解决它。

最佳答案

我相信你的问题是这样的:在你的 while 循环中,n 除以 2,但再也不会转换为整数,所以它在某个时候变成了 float 。然后将它添加到 y 上,这也是一个 float ,这会给你警告。

关于python - 只有整数、切片 (`:` )、省略号 (`...` )、numpy.newaxis (`None` ) 和整数或 bool 数组是有效的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34952651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com