numpy

1、numpy(南派)
一个开源的Python计算库,使用numpy可以方便的使用数组、矩阵进行计算,包含线性代数、傅里叶变换、随机数生成等大量函数。
2、为什么使用numpy
(1)代码更简洁,numpy直接以数组、矩阵为粒度计算并且支持大量的数学函数,Python就是for循环
(2)性能更高效,numpy的数组存储效率和输入输出计算性能,numpy的数据存储与Python的原list不同,大部分代码用c语言实现,更高效。
(3)numpy是Python各种数据科学类库的基础库
比如Scipy(3派)、Scikit-learn(3可learn)、Tensorflow、PaddlePaddle(派都)、Pandas
3、numpy的核心array对象以及创建array方法
(1)array数组可以是一位数组也可以是多维数组,相当于Python的list,但比他性能更好,包含元数据信息,大量的便捷函数。并且array要求元素必须是同一种类型,这也是高性能的一个原因。
(2)array本身的属性
shape:返回一个元组,表示array的维度
ndim:一个数字,表示array维度的数目
size:一个数字,表示array中所有数据元素的数目
dtype:array中元素的数据类型
(3)创建array的方法:
从Python的列表list和嵌套列表创建array
使用预定函数arange、ones/ones_like、zeros/zeros_like、empty/empty_like、full/full_like、eye(创建矩阵,矩阵的对角线上都是1)等函数的创建
生成随机数的np、random模块构建
(4)array本身支持大量操作函数
直接逐元素的加减乘除的算数操作
更好用的面向多维的数组索引
求sum/mean等聚合函数
线性代数函数、比如求解逆矩阵、求解方程组
4、代码
import numpy as np
x=np.array([1,2,3,4,5])
X=np.array(
[
[1,2,3,4]
[2,3,4,5]
]
)
x.shape #输出8(8个元素)
X.shape #输出(2,4)(两行四列)
x.ndim #输出1 (1维)
X.ndim #输出2(2维)
x.size #输出8 (8个元素)
X.size #输出8(8个元素)
x.dtype #dtyte(“int32”)
X.dtype #dtyte(“int32”)
5、使用arange创建数字序列
np.arange(10) #输出array([0,1,2,3,4,5,6,7,8,9,10])
np.arange(2,10,2) #输出array([2,4,6,8]) (从2开始,到10结束,步长为2,左闭右开)
6、使用ones创建的全是1的数组
np.ones(10)#输出10个1
np.ones(2,3)#输出2行3列个1
7、使用zeros创建的全是0的数组
np.zeros(10)#输出10个0
np.ones(2,3)#输出2行4列个0
8、使用zeros_like创建形状相同的数组
9、使用empty_like创建形状相同的数组(数据是未初始化的,里面的值是随机的不要用)
np.empty_like(10)#输出10个00
zeros是0,empty是空(输出也是0)
10、用那个full创建指定值的数组
np.full(10,666)#输出10个666
np.full((2,3),666)#输出2行3列个666
11、使用random模块生成随机数的数组(几个参数就是几维数字)
np.random.randn()#输出1.112634363246176
np.random.randn(3)#输出array([1.112634363246176,1.112634363246176,1.112634363246176])
np.random.randn(3,2)#输出array([1.112634363246176,1.112634363246176],
[1.112634363246176,1.112634363246176],
[1.112634363246176,1.112634363246176])
np.random.randn(3,2,4)#输出3行2组4列 array
([[[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176],
[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176]],[[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176],
[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176]],
[[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176],
[1.112634363246176,1.112634363246176,1.112634363246176,1.112634363246176]]])
12、np.sin(A)#sina函数;np.exp(A)#以e为底的指数函数
13、numpy三种索引方式:基础索引、神奇索引、布尔索引
(1)基础索引:(python使用切片会改变原数组)
x[2:4]一位数组,从索引为2开始到索引4(不包括4)
x[2,1]二位数组输出第二行第一列
x[2]二维数组输出第二行
x[:2,2:4]二维数组,第一行到第三行的第二列到第四列
x[:,2]二维数组,所有行的第二列
(2)神奇数组:用整数数组进行的索引
arr.np.random.randit(1,100,10)#随机输出1-100的10个整数
arr.argsort()[-3:]#返回排序后的最大的三个数的下标
arr[arr.argsort()[-3:]]#返回排序后的最大的三个数的值
(3)布尔索引
x>5#输出 arr([False,False,False,False,False,True,True,True,True])(判断数组中每个值是否大于五,大于就True,不大于就FALSE)
x[x>5]#输出满足x>5的数组中的值 arr([6,7,8,9])
14、numpy的axis参数的用途
axis=0代表行不动,对列操作;axis=1代表列不动,对行操作
对于sum/mean/media等聚合函数:axis=0代表把行消除掉,axis代表把列消除掉,或者axis=0代表跨行计算,axis代表跨列计算
15、numpy怎样给数组增加一个维度?
numpy_第1张图片
np.newaxis就是None
16、数据合并操作
numpy_第2张图片17、随机函数

numpy_第3张图片
numpy_第4张图片

你可能感兴趣的:(numpy,python,机器学习)