繁体   English   中英

Python中尖括号的含义是什么?

[英]What is the meaning of angle brackets in Python?

我在 scikit-learn 包中找到了以下几行

if is_sparse:
    problem = csr_set_problem(
            (<np.ndarray[np.float64_t, ndim=1, mode='c']>X.data).data,
            (<np.ndarray[np.int32_t,   ndim=1, mode='c']>X.indices).shape,
            (<np.ndarray[np.int32_t,   ndim=1, mode='c']>X.indices).data,
            (<np.ndarray[np.int32_t,   ndim=1, mode='c']>X.indptr).shape,
            (<np.ndarray[np.int32_t,   ndim=1, mode='c']>X.indptr).data,
            Y.data, (<np.int32_t>X.shape[1]), bias,
            sample_weight.data)
else:
    ...

我对“Python 中的尖括号”的所有搜索都给出了有关文档装饰器语法的答案,我很确定这两者都不是,因为它看起来像实际的逻辑。

上面 Python 代码中的尖括号有什么作用,我在哪里可以了解更多关于它们的信息?

这是 Cython 的类型转换/强制语法。 它不是普通的 Python。 注意文件扩展名是.pyx

您可以在 Cython 的文档中了解有关它们的更多信息。

这是从文档页面中获取的示例:

cdef char *p, float *q
p = <char*>q

scikit-learn等项目中使用 Cython 并不少见,通过将可读的 Python 与极速的 C 混合,可以获得显着的优化。

查看Cython 文档,了解 types

此外,您可能会注意到文件扩展名是.pyx并且文件顶部有cimport语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM