Numpu第三方库

**

Numpy第三方库

**
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能。
一、数组和列表的区别:
(1)数组中存放的数据类型必须一致,可以存放基本类型数据;列表中可以存放不同类别的数据类型,但不可以存放基本数据类型。
(2)初始化的数组长度固定,数据都被赋值。
(3)list可以删除、增加元素,而数组不可以,除非重建数组。
二、Numpy库中数组的一些方法
(1)import numpy as np
(2)数组的创建
a=np.array([1,2,3,4]) #创建一维数组,参数可以是列表或元组;
b = np.array([1,2,3],[4,5,6]) #创建二维数组
c = np.random.randn(7,4) #创建7*4随机数组
长度:np.shape(a) a.shape()
多维数组的数据类型:numpy.ndarray
设定数据类型:a = np.array([1,2,3,4],dtype=np.float64)
(3)a.reshape()相当于浅复制,还是使用原来的存储空间。
a.reshape(2,-1) # -1相当于自己推算
(4)**转换数据类型:**a.astype(float) # astype转化数据类型,会返回新的数组,相 当于原始数据复制。
(5)创建特殊数组:np.arange(a,b,c):a到b(不包括b),步长c的一维数组,默认 类型为int32
np.arange(a,b,c).reshape(3,3):
np.linspace(a,b,c):在a和b之间,分成c份。
(6) **一维数组索引:**arr[::-1]:倒叙 arr[:]相当于复制
arr[:-1]:不包括最后一个元素
‘:’是一维索引,‘,’是多维索引
**切片:**slicing: b[:,2]:所有行的第三列数据的数组
b[1:4]对于一维数组的切片
arr[3:6] = 12:3~5的元素都是12(传播)
(7)多维数组索引和分片:
索引:a[1][2] 或 a[1,2] :第二行,3列的数据 c[1:2][0]
arr2[:2,1]#打印第1、2行的第2列
arr2[:2,1:]=0 #将第1、2行的第2、3列设置为0
分片:a[2]第3行所有数据的数组
注:对于切片,切片后的数组与原数组共用空间,改变切片数组的元素,与会改变原数组的元素。数组切片是原始数组的视图,视图上任何修改直接反映到源数据上面。因为 Numpy 设计是为了处理大数据,如果切片采用数据复制话会产生极大的性能和内存消耗问题。
(8)数组复制copy():为数组生成一个副本 a[1:3].copy()
(9)布尔索引:这种方式得到结果不和原始数组共享空间。布尔索引仅仅适用于数组array。布尔索引最终得到下标索引为true的数据。
如: a[a>5] 返回值大于5的数据
(10)文件中数组的输入和输出:
数据以二进制格式保存到磁盘,np.save、np.load函数是读写磁盘的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为.npy的文件中
写入数组:np.save(“文件名”,a) #a是需要写入的数组,文件的扩展名为.npy
np.savetxt()
读取数组:np.load(“文件名”) #
arr = np.loadtxt(‘dataMatrix.txt’,delimiter=’ ‘)
(11)np.zeros((3,4)) #(n,m)表示数组size
np.ones((3,4))#二维 np.ones(10)#一维
np.eyes(3) #单位矩阵
np.empty((2,3,4)) #生成未初始化的数组
(12)获取数组属性:
a.ndim #数组维度
a.shape #数据每一维的元素数
a.size #总元素数
a.dtype #数组的数据类型
a.itemsize #数组每个元素所占字节数
(13)合并两个数组:vstack(垂直方向) hstack(水平方向) 属于深拷贝
np.vstack((a,b))
np.hstack((a,b))
(14)数组的深拷贝和浅拷贝
a = b #浅拷贝,占用同一个空间 a is b
a = b.copy() #深拷贝,占用不同的空间
(15)矩阵运算方法 numpy.linalg
转置:np.transpose() #矩阵转置 a.T #矩阵转置
numpy.linalg.eig(a) #得到特征值和特征向量
(16)数组运算:
[1]数组的乘法/减法,都是对应元素相乘/相减;大小相等的数组之间的任何算术运 算都会将运算应用到元素级
[2]数组与标量间的运算:标量作用在数组的每个元素上,不用使用循环就能完成批量运算;
[3]abs,np.fabs(绝对值),np.sqrt(平方根),np.sqare(平方),np.exp(指数),np.sign(符号函数),np.ceil(大于等于该值的最小整数),np.floor(小于等于该值的最小整数),np.modf把浮点数的小数部分和整数部分分开,maximum或fmax:元素级最大元素,minimum或fmin: 元素级最小元素。


                        欢迎批评指正!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值