小编Kel*_*aar的帖子

使用类型联合时“arg-type”键入错误,单独使用类型时没有错误

我想了解为什么floatnp.float64类型的联合会在这里产生[arg-type]键入错误,但单独使用类型就可以了:

import numpy as np
from numpy.typing import ArrayLike
from typing import Any, Union


def as_float_array(a: ArrayLike) -> Any:
    ...


w: float = float(4)
as_float_array([w])

x: np.float64 = np.float64(4)
as_float_array([x])

y: Union[float, np.float64] = float(4)
as_float_array([y])

z: Union[float, np.float64] = np.float64(4)
as_float_array([z])

Run Code Online (Sandbox Code Playgroud)
/.../scratch.py:17: error: Argument 1 to "as_float_array" has incompatible type "List[Union[float, floating[_64Bit]]]"; expected "Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], Union[Union[_SupportsArray[dtype[Any]], Sequence[_SupportsArray[dtype[Any]]], Sequence[Sequence[_SupportsArray[dtype[Any]]]], Sequence[Sequence[Sequence[_SupportsArray[dtype[Any]]]]], Sequence[Sequence[Sequence[Sequence[_SupportsArray[dtype[Any]]]]]]], Union[bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, …
Run Code Online (Sandbox Code Playgroud)

python numpy python-typing

7
推荐指数
0
解决办法
757
查看次数

Numpy:计算2d阵列每行对角线的最快方法

给定一个2d Numpy数组,我希望能够以最快的方式计算每一行的对角线,我现在正在使用列表理解,但我想知道它是否可以以某种方式进行矢量化?

例如,使用以下M数组:

M = np.random.rand(5, 3)


[[ 0.25891593  0.07299478  0.36586996]
 [ 0.30851087  0.37131459  0.16274825]
 [ 0.71061831  0.67718718  0.09562581]
 [ 0.71588836  0.76772047  0.15476079]
 [ 0.92985142  0.22263399  0.88027331]]
Run Code Online (Sandbox Code Playgroud)

我想计算以下数组:

np.array([np.diag(row) for row in M])

array([[[ 0.25891593,  0.        ,  0.        ],
        [ 0.        ,  0.07299478,  0.        ],
        [ 0.        ,  0.        ,  0.36586996]],

       [[ 0.30851087,  0.        ,  0.        ],
        [ 0.        ,  0.37131459,  0.        ],
        [ 0.        ,  0.        ,  0.16274825]],

       [[ 0.71061831,  0.        ,  0.        ],
        [ 0.        , …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

5
推荐指数
2
解决办法
930
查看次数

标签 统计

numpy ×2

python ×2

arrays ×1

python-typing ×1