numpy 将Callable应用于NDArray

dddzy1tm  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(166)

我是Python的新手,我已经做了很多尝试,看看它是否有效。在本例中,当我将Callable应用于NDArray时,我得到了一个结果,只是不是我所期望的。

from typing import Callable
from typing import Tuple
import numpy as np

callable : Callable[[float], Tuple[float, float]] = lambda x : (x , x + 1)
array : np.ndarray = np.asarray([0, 1, 2, 3])
result = callable(array)
print(result)

我期望(或者说希望)得到一个元组的可迭代对象,其中每个元组都是应用于float的可调用对象的输出。我得到的是一个数组元组:

(array([0, 1, 2, 3]), array([1, 2, 3, 4]))

到底发生了什么?(为什么我应该期待我实际得到的结果?)

qlfbtfca

qlfbtfca1#

总结一下,callable的类型注解是误导性的,lambda只是应用于数组本身--就像我对result=(array, array+1)所做的一样。没有什么神秘的事情。谢谢你的帮助

相关问题