我正在开发一个项目,其中一部分我必须生成一些随机数数组,并使用每个值进行模拟。首先,我生成一个整数/浮点数的 numpy 数组,然后在循环中提取它们并将它们传递给处理其余部分的对象。起初我每个循环只生成 1 个值,所以没有任何问题,但是当我将它移到循环之外并开始使用 [] 从中获取值时,它开始警告我它
Expected type 'int', got 'ndarray[Any, dtype]' instead
,表明它认为 my_array [i] 返回一个数组而不是一个值。这与 numpy.random 无关,因为创建数组时也会发生这种情况。工作示例:
import numpy as np
foo = np.array([0, 1, 2])
bar: int = foo[1]
print(type(bar), bar)
输出:
<class 'numpy.int64'> 1
这可以通过在创建数组后添加 tolist() 来解决,尽管这可能并不总是您想要的,并且我认为当您这样做时它会放弃一些类型检查。这是类型检查器的问题,还是有这种行为的原因?我正在使用 python 3.10.12 和 Pycharm 2024.2.2.
这对你有什么好处吗
import numpy as np
foo = np.array([0, 1, 2])
#bar: int = foo[1]
bar: int = int(foo[1])
print(type(bar), bar)
输出: