前言
对于机器学习领域的开发人员来说,Python是最流行的编程语言之一。Python既不是最快的语言(很容易被C和C+取代),也不一定是最容易学习的语言(R和Matlab可以有更小的学习曲线)。那么,为什么python被 57%的数据科学家和机器学习开发人员 排名 第一位是PYPL指数 作为当今最流行的编程语言之一?作为一名程序员,我认为这可以归结为两件事:编程的简单性和Python提供的大量库。
很简单。轻松点。方便。
Python允许开发人员在短时间内从一个想法到另一个产品。虽然为类似过程编写代码可能需要开发语言(如c+)的开发人员花费数小时甚至几天的时间来计划、完善和编写,但是python开发人员可以编写 相同代码(分钟) 。以下面的示例为例,它探索了使用c+读取一个简单的CSV文件,我是从c+临时编写的 这个解决方案 输出到矩阵
#include
#include
#include
#include
#include
#include
class CSVRow
{
public:
std::string const& operator[](std::size_t index) const
{
return m_data[index];
}
std::size_t size() const
{
return m_data.size();
}
void readNextRow(std::istream& str)
{
std::string line;
std::getline(str, line);
std::stringstream lineStream(line);
std::string cell;
m_data.clear();
while(std::getline(lineStream, cell, ','))
{
m_data.push_back(cell);
}
if (!lineStream && cell.empty())
{
m_data.push_back("");
}
}
private:
std::vector<std::string> m_data;
};
std::istream& operator>>(std::istream& str, CSVRow& data)
{
data.readNextRow(str);
return str;
}
int main()
{
std::ifstream file("test.csv");
std::vector< CSVRow > mat;
CSVRow row;
while(file >> row)
mat.push_back(row);
}
它的工作原理是应该的,但是代码非常庞大。即使我们忽略了这是一个49行的解决方案,它是很难阅读和理解。现在让我们看看我的python版本的相同代码。
import csv
mat = csv.reader(open('test.csv','r'), delimiter=',')
就这样 2行 。只有一行实际代码和一个import命令才能构造CSV对象。最重要的是,它易于阅读和理解,因此可以很容易地传递给另一个开发人员。
图书馆!
Python是一种简单的阅读、理解和代码语言,非常好,但是这种语言的简单性在哪里与机器学习相结合呢?图书馆是这里的关键。想要创建n维矩阵在你的程序中实现矩阵代数?使用 Numpy。想要执行高级数学函数分析你的Numpy阵列?使用 西皮 。想看图形可视化你的数据?Matplotlib 就是答案。也许你想要结合Scipy和Numpy来创建基本的机器学习模型;进入 Scikit-学习 。想要更具体的东西吗?也许 NLTK 图书馆自然语言处理或者 OpenCV 图书馆图像分析更合适。也许,你想超越机器学习和利用深度学习?像这样的图书馆 TensorFlow , 西亚诺 ,和 皮托尔奇 可以做繁重的工作,而类如 喀拉斯 可以让你更容易编码。关键是有很多资源可以让您快速创建机器学习模型和应用程序。
封闭思想
双键 领导原则 我们在阿南特举行的 对行动的偏见 和交付成果 . 对于开发人员和商业领袖来说,重要的是优先考虑做决定和完成任务,而不是花费大量的时间来寻找“完美”的解决方案。重要的是要理解python不是机器学习中应该使用的唯一编程语言,也不是最理想的语言。从长远来看,可能需要使用python以外的语言来完善您的机器学习过程。然而,python是唯一的,因为它将允许您快速创建一个 功能原型 机器学习模型,即 合作者也是庞大的开发者社区 .
总结
有很多炒作与兴趣在当今的机器学习环境下,大多数听说过机器学习的人从来没有真正尝试过机器学习,因为他们认为自己不具备将自己的想法转化为现实的技术技能或知识。Python是概念和产品之间的桥梁。带着 语言的简单性 、高级库,最重要的是开发人员社区,任何技能水平的程序员都可以创建自己的机器学习应用程序。
大家如果对Python有兴趣的话点个关注,与时俱进。同时我也整理了一些Python的资料提供给大家,加QQ:1499732272 ,或者微信扫一扫