学习背景
前几天群里有个大佬推荐了一门极客时间里关于数据分析的课程,教学方式是图文+音频,是我比较喜欢的教学方式之一,光看评论都能学到很多的知识,比如学习方式,对内容的理解等,感兴趣的朋友也可以一起学习。
现在是大数据的时代,学习数据分析是必备的技能,python对于获取数据这方面也是特别优势的。
通过爬虫能够获取大量的数据,但是光得到数据也没啥用啊,要让这些数据产生价值,还得进一步处理,也就是数据分析,尽管我数学很差(真是个悲剧~),但这并不能阻止我爱学习的心,所以我毫不犹豫的报了这门课程。哈哈~
好,进入主题,学习的过程中,我记录了一些笔记,想在这里分享给大家,让我们一起学习吧~
NumPy的介绍
学习数据分析怎么能少的了numpy这个功能强大的科学计算库呢。由于这部分内容所涉及的知识点比较多,所以我打算分三次来给大家分享,今天先带大家初步了解一下。
numpy是python使用最多的第三方库,而且是Scipy/pandas等数据科学的基础库,其中使用最多的就是数组了。
数组其实是一种数据结构,python里list(列表)、dict(字典)、tuple(元组)、set(集合)等都是属于数据结构,其中list也是数组。
Numpy相比于列表的优势
我们先来谈谈list列表吧。
列表中的元素可以是任意对象,分散式的把数据存储在内存当中,所以列表里有多少数据就需要有多少的指针,事实上列表中保存的是元素的指针,用来指向存储元素的内存地址。
但我们只想保存数据,并不想要保存指针,从算法的空间和时间优化来看,这样占据了很大的内存空间,同时也增加了计算量和时间,这是一种浪费!
而numpy却可以克服这些缺陷,因为numpy会把数据连续的存储在内存中,然后利用现代cpu的矢量化指令计算,加载寄存器中的多个连续浮点数(其实这点我也还不能理解,先分享给大家,万一有人懂呢~)。
除此之外,numpy中的矩阵计算可以采用多线程的方式,充分利用CPU计算资源,来达到提升计算效率的目的。
课程里还提到了一个重要的规则:避免采用隐式拷贝,而应该就地操作。简单来说就是,能靠自己就不要去依靠别人。就拿自增来说吧,可以简单点写成 x+=2,就不要搞太麻烦写成 y =x+2。。。
好啦,今天就先分享到这,文章里还有很多不理解的地方,比如数据存储的原理,聪明的你愿意和我 分享你的看法吗