在NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
因为Numpy库较为全面,且大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多。因此在实际运用中许多复杂的数学计算需要用matlab实现的,最终都可以通过Numpy实现。
因此有Python+Numpy==Matlab的说法:)
import numpy as np
a=[1,2,3,4,5,6]
a*2
便会得到:
[1,2,3,4,5,6,1,2,3,4,5,6]
那么我们如何进行列表内值的二倍运算呢?
因此,我们需要将其变成ndarry形式(为整个numpy的基础,N-demensional array的缩写,即一种由同质元素组成的多维数组),变成数组之后便可以对其内部的只进行数值运算。
A=np.array(a)
print(A)
A
即得:[1 2 3 4 5 6]
array([1,2,3,4,5,6])
此时type一下A
A的形式为
而将
A*2
得:array([2,4,6,8,10,12])
我们在创建数组时,都直接使用np.array()创建,当需创建二维数组时,只需在其中写入两个列表即可。
c=np.array([1,2,3],[4,5,6])
print©
print(type©)
接下来介绍一下几个判断函数:
1)ndim为维数的判断,也称数组轴/秩的个数,简单的说就是按照定义式中有几个“[”。
2)shape为计算每个维度上大小的整数元组:当一维时即总个数;二维时为行列数;三维时先数有几个二维,在显示每个的行列数(详细情况如下图所示)
3)size为元素总数的计算。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190913173354295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RoaW5raW5nT3V0TG91ZA==,size_16,color_FFFFFF,t_70
另外shape属性可以修改:知识改变每个轴的大小并没有将数组元素在内存中的位置改变。
当shape中第二个参数为-1时,则自动计算此轴的长度
reshape自动创建新数组,而不是在原数组上修改。
linspace:设置开始值,终值和元素个数才创建,可通过endpoint关键字来指定是否包含终值,缺省设置是包含终值。
logspace:与linspace类似,但创建等比数列
array中通过下标获得的新数组与原始数组共享一块数据空间。
当时用整数序列对数组元素进行存取时,整数序列可以是列表或者数组,使用整数序列下标获得的数组不和原始数组共享数据空间。
x=np.random.rand(10)产生一个长度为10,元素值为0-1的随机数组。
即处理不同形状的数组之间的算数运算,当维数不同时,小的自动扩展,即广播功能,复制!然后再进行对位的运算。