python三大数据分析库之numpy库的学习笔记


导入库:
import numpy as np

创建数组

利用array()函数创建数组。
array = np.array([[1,2,3],[4,5,6],[7,8,9]],dtype=None)
方括号的对数可以代表数组的维度。
其它参数:
copy=True #指定对象是否需要复制
order=None #创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok=False #指定默认返回一个与基类一致的数组
ndmin=0 #指定生成数组的最小维度

zero = np.zeros((2,3)) #全为0的数组
one = np.ones((2,3)) #全为1的数组
empty = np.empty((2,3)) #接近于0
e = np.arange(10) #(2,10)#(1,3,20)#一维数组
f = np.arange(8).reshape(2,4) #将一维数组转换形状#reshape后面单括号,双括号都行,个人喜好。reshape(2,3,4)代表转换为由两个三行四列二维数组组成的三维数组。
m = np.random.random((3,2)) #元素为0~1内的随机数数组#random后面一定时双括号
n = np.random.normal(size=(3,2)) #符合标准正态分布的随机数数组#如果在size前面再加两个数,那就不是标准正态分布了
s = np.random.randint(0,10,size=(3,2)) #随机整数数组
np.linspace(start,stop,num=50) #创建等差数列(数组)
np.logspace(start,stop,num=50,base=None)
#创建等比数列(数组),数据头一定是base^ start,若endpoint=True,则数据尾为base^ stop,其余数据为base^(start,end)
np.ravel() #高维数组展开成一维数组

矩阵属性:
array.ndim:返回数组的维度
array.shape:返回数组的形状
array.size:返回数组的大小
array.dtype:返回数组里元素的类型
array.itemsize:返回每个元素的大小,以字节为单位

数组运算

一般运算都是对应项进行运算。
数组内积:np.dot(p,n)或者p.dot(n);二维数组内积是矩阵成积,也可以是np.matmul(a,b)
数组点积:np.vdot(a,b)
数组向量内积:np.inner(a,b)
转置矩阵:n.T或者np.transpose(n)
求二维数组的行列式:np.linalg.det(a)
求二维数组的逆矩阵:np.linalg.(a)
求数组n中所有元素的和:np.sum(n)
求最大最小元素:np.min(n)、np.max(n)
对列求和:np.sum(n,axis=0)
对行求和:np.sum(n,axis=1)
获得最大最小值的索引:np.argmin(n)和np.argmax(n)
获得平均值:np.mean(n)或者n.mean()
获得中位数:np.median(n)
获得开方值:np.sqrt(n)
升序排序:np.sort(n) #如果是二维的,则会按行排序
np.clip(n,2,7) #小于2变成2,大于7变成7

数组索引

一维数组索引和前面字符串索引一样,不多bb!
直接二维数组
n[1] 取第二行
n[1][1]或者n[1,1] 取第二行第二列的数
n[:,2]或者n.T[2] 取第三列
n.flat 迭代每个元素

数组合并

np.vstack((m,n)) 垂直合并
np.hstack((m,n)) 水平合并
np.concatenate((m,n),axis=0/1) 可以指定合并方式

一维数组不能转置
n[np.newaxis,:] 增加一个维度,实际上是加了一对方括号
np.atleast_nd(n) 低维变n维

数组分割

np.split(n,3,axis=0) 将数组n沿水平方向切割成三份
np.split(n,2,axis=1) 将数组n沿垂直方向切割成两份
np.array_split(n,3,axis=1) 将数组n沿垂直方向不等分割成3份
np.vsplit(n,3) 水平切割
np.hsplit(n,2) 垂直切割

数组的深拷贝和浅拷贝

浅拷贝:m = n
m改变,n也会改变(m,n共享一块内存)
浅拷贝:m = n.copy()
m改变,n不会改变

创建矩阵

mat()或martrix()
a = np.mat(“3,4;5,6”)
a.I 逆矩阵
还可以np.mat(数组名)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值