[英]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 混合,可以获得显着的优化。
此外,您可能会注意到文件扩展名是.pyx
并且文件顶部有cimport
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.