这属于一种误解,人工智能的核心算法是完全依赖于c/c++的,因为是计算密集型,需要非常精细的优化,还需要gpu、专用硬件之类的接口,这些都只有c/c++能做到。所以某种意义上其实c/c++才是人工智能领域最重要的语言。
python是这些库的api binding,使用python是因为cpython的胶水语言特性,要开发一个其他语言到c/c++的跨语言接口,python是最容易的,比其他语言的ffi门槛要低不少,尤其是使用cython的时候。其他语言的ffi许多都只能导入c的函数入口点,复杂的数据结构大多只能手工用byte数组拼起来,如果还需要回调函数输入那就无计可施了。而cpython的c api是双向融合的,可以直接对外暴露封装过的python对象,还可以允许用户通过继承这些自定义对象来引入新特性,甚至可以从c代码当中再调用python的函数(当然,也有一定的条件限制)。不过这也是pypy这样的jit解释器的一个障碍。
而且python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择api binding语言的时候会首选python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。
相关教程推荐:python视频教程
以上就是人工智能为什么用python的详细内容。