01、前言
各位小伙伴们大家好,这里是 【和小安一起学习数据分析】 系列栏目的第一期 numpy到底怎么用,接下来的一个月中,我会陆续更新python有关数据分析的几个库NumPy、pandas、SciPy、matplotlib的学习心得,希望能对大家有所帮助,如有不妥之处,也请大家不吝赐教。
02、NumPy是什么/有什么用?
在学习具体的函数使用、数组创建、索引等知识前,私以为,我们应该先了解,NumPy到底是什么,我在什么时候会用到它,为什么要用它,为什么不用python自带的数组等等问题。接下来,让我们一一来解答这些问题。
1、NumPy到底是什么?
按照官方的说法,NumPy是使用Python进行科学计算的基础软件包。它包括:
- 功能强大的N维数组对象(ndarray)
- 精密广播功能函数
- 集成 C/C+和Fortran 代码的工具
- 强大的线性代数、傅立叶变换和随机数功能
按照我的理解,NumPy其实是一个典型的数据结构型的库,和C++中的< set >、< vector >等类似,都是以一个数据结构(NumPy中的ndarry)为核心,然后集成了一系列这个数据结构相关的属性、方法,我们学习这个库,其实就是在学习这个数据结构的属性和方法。
2、NumPy真的很好用?
在计算机界,一个库、一个轮子的火热,很大程度上都应该是因为这个轮子很好用,NumPy的火热也是如此。通常来说,好用都是比出来的,我们先来比较一下NumPy数组(ndarray)和python数组(Array)之间的区别。
- NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同,更改ndarray的大小将创建一个新数组并删除原来的数组
- NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同
- NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少
- 越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。换句话说,为了高效地使用当今科学/数学基于Python的工具(大部分的科学计算工具),你只知道如何使用Python的原生数组类型是不够的 ,还需要知道如何使用 NumPy 数组
说白了,就NumPy数组比python数组,更快,更方便,功能更多,同时NumPy本身还与python的其他科学和数学库有联系,所以学习NumPy是数据分析的重要基础。
3、NumPy有些什么用?
前面说了这么多,大家可能还是不知道NumPy到底可以干什么,这里给大家一个简单的总结,一句话,和矩阵有关的它都能干。像什么,深度学习、数据分析、矩阵运算等等,都需要用到NumPy。
03、ndarray的创建和基本属性
前面说了一堆废话,我们还是抓紧时间来进入正题。正如前文所述,NumPy的核心就是ndarray这个数组,所以我们先来讲怎么创建ndarray数组。
上述就是常用的一些创建方法,然后我们来看看一个正常的ndarray有哪些属性。
我们其实可以在创建ndarray时就指定一些属性。
04、总结
本期文章围绕ndarray介绍了NumPy的基本使用,希望能就自己的理解与大家讨论,本人也是初学,如有过失之处,还望大家予以指点。