![19208e9eac67335edb291a99465e4ae2.png](https://i-blog.csdnimg.cn/blog_migrate/fb58206d8afe032897452f83aec93396.jpeg)
Numpy 是用python进行科学计算的一个基础库,因为它提供了python基础包所没有提供的数据结构和高性能函数。Numpy和Pandas经常会组合使用,以达到数据处理的目标。
Numpy定义了一种专门用于科学计算的数据结构ndarray – 它是一种N维数组。
![2eb54b61e7d3372f8be964449081eac7.png](https://i-blog.csdnimg.cn/blog_migrate/e2c2331c9b12ff734942e17ab61cb63a.jpeg)
NumPy的数组类称为ndarray。也被称为别名array。需要注意的是,numpy.array与Python内部库array.array不同,后者仅能处理一维数组且功能较少,而ndarray对象则包含了更多、更重要的属性:
ndarray.ndim 数组维度
![2b713d5ccf9a3066e413de1007a669b0.png](https://i-blog.csdnimg.cn/blog_migrate/4079b7fbdacbd06b043bcdc4ef17cf51.png)
ndarray.shape 数组大小
![5652269ed6c9d4284d6c86e8c47a2257.png](https://i-blog.csdnimg.cn/blog_migrate/c39dda6e4e97e1bf01ba495628952ecc.png)
ndarray.size 数组元素的总数
![edda8088ab0b8a14fbf10fd6392d426c.png](https://i-blog.csdnimg.cn/blog_migrate/103c4bdc7742cc354a0472432a9ca52c.png)
ndarray.dtype
数组中元素的类型。这里所说的类型既可以是Python的标准类型也可以用dtype指定。同时,NumPy提供了自己的类型。比如:numpy.int32,numpy.int16和numpy.float64。
![f72e0f503e92c119803e47a070cae16c.png](https://i-blog.csdnimg.cn/blog_migrate/52e3d5644e942f0547606abd85530d76.png)
ndarray.itemsize 数组中每个元素的大小(以字节为单位)
![86e7ed6e84cd6ba7f2834691eb4f120b.png](https://i-blog.csdnimg.cn/blog_migrate/124b3280bdfe3030053975da525fb6dd.png)
矩阵的建立
建立矩阵有几种方法。
例如,您可以使用array函数用常规Python列表或元组来创建数组。根据序列中元素的类型推导所得数组的类型。
![115be748053c47fcf8273a390fc643ec.png](https://i-blog.csdnimg.cn/blog_migrate/374847a33367619575f38f7158203add.png)
可以用array()创建float类型的矩阵
![fcd180be9a1b81fbec025755809a55df.png](https://i-blog.csdnimg.cn/blog_migrate/de8cecb7810c353739f60b7a269b4b4e.png)
较常见的错误在于调用array时给定了多个参数,而不是提供一个序列作为参数。
![b55ad85ab5fbfd1e42bb7af33fc75944.png](https://i-blog.csdnimg.cn/blog_migrate/8624e36ca86a1a83f33ee043e827a88e.jpeg)
通常,数组的元素最初是未知的,但是其维度和大小是已知的。所以,Numpy准备了几个好用的初始化函数。
zeros() 初始化元素为0
![b1270b0c211945ecab4c9b7093be67f4.png](https://i-blog.csdnimg.cn/blog_migrate/5973e3b2a3434490106cfbce057ff0e7.jpeg)
ones() 初始化元素为1
![aa546a4a05a32a269ae2814c3c71c1f3.png](https://i-blog.csdnimg.cn/blog_migrate/7ecf1bf30d59090cdb2c7fd2d28cf26a.jpeg)
这个数组是三维的,咱们可以用ndim来看一下。
![2d1e4bff35ce7dc8be6922ab0e26e182.png](https://i-blog.csdnimg.cn/blog_migrate/18d5b67135d27f0b9eb71a6702a64066.jpeg)
为了创建数字序列,NumPy提供了arange
类似于Python内置函数的功能range
,但是返回一个数组。
![8ab0ddbd16233be22c4b7168ffb2e558.png](https://i-blog.csdnimg.cn/blog_migrate/5cc37e1ef2c724bf89739ee2c03efae7.png)
浮点数
![117a7bb9830bf8150e36996f7de140ab.png](https://i-blog.csdnimg.cn/blog_migrate/4e76836fd3f1c36d01cf2b04d894c56f.png)
基本操作
算术运算符适用于数组。
![bd28daf6154fbae5e4ee7a0f42ef96f8.png](https://i-blog.csdnimg.cn/blog_migrate/5c7ee0d45ac0625989d2a694e18f37c7.jpeg)
数组的加减除你都可以自行尝试,只有乘有点复杂。数组相乘的结果是这样的:
![2e1acd1407cf2837cf41061fbe8dc9a6.png](https://i-blog.csdnimg.cn/blog_migrate/b0df5f2cc08d639f45ebd246a47e6793.jpeg)
结果数组的[i][j]元素等于a和b的[i][j]元素逐一相乘。有点像这个:
![6c9d6148e697e454b389af9a6bca94fb.png](https://i-blog.csdnimg.cn/blog_migrate/74a0214191691e72ab0283c35180e147.jpeg)
许多一元运算(例如计算数组中所有元素的总和)都作为ndarray
该类的方法实现。
![582b015046a296975ec77f520e6f5aa8.png](https://i-blog.csdnimg.cn/blog_migrate/d6f5464b64fbe64b5b0b16af1bfe5b75.jpeg)
默认情况下,这些操作适用于数组,就好像它是一个数字列表一样。通过指定axis
参数,你可以沿数组的指定轴应用操作:
![079603b1272833ab603bd1c6af4589ab.png](https://i-blog.csdnimg.cn/blog_migrate/3546bbcab586675173703bac773e1357.jpeg)
cumsum()为阶梯汇总,用途较少,有兴趣的同学可以自行谷歌脑补。
由于Numpy只是提供了Pandas所需的数据类型和函数,我们无法做到深入的去剖析Numpy的方方面面。不过,我们会在后续的课程中,对涉及到的Numpy内容进行补充。
感兴趣的同学还可以参考国外大神的图文讲解,比我单纯的罗列来的精彩:
Numpy和数据展示的可视化介绍 - Brave new worldwww.junphy.com![65a7ee27d7b83dfe7c7ea4c15c7035dc.png](https://i-blog.csdnimg.cn/blog_migrate/74042ce8c283d03e5419b02ab2edda40.jpeg)