Python--Numpy常用命令

'''Numpy库吐血大整理'''

import numpy as np

#一维数组(newaxis可以行转列)
d=np.arange(1,10,1)
#开始值1,结束值9,步长是1的一维数组
e=np.linspace(1,12,num=5,endpoint=True,retstep=True)#等差数列
#开始值1,结束值12,生成5个数字,包含结束值(默认为True),返回步长
f=np.logspace(1,10,num=10,endpoint=True,base=2)#等比数列
#开始值2的1次方,结束值2的10次方,生成10个数字,包含结束值,底数为2

#二维数组
a=np.zeros((3,4))
#3行4列全是0
b=np.ones((3,4))
#3行4列全是1
c=np.full((3,4),2.0)
#3行4列全是2
g=np.identity(3)
#3行3列,对角线是1,其他全是0

#数组的连接和分割
print(np.concatenate((a,b),axis=0))
#连接a,b俩数组沿着0轴方向,默认为0轴
print(np.vstack((a,b)))
#连接a,b俩数组沿着0轴方向,1轴元素个数必须相同
print(np.hstack((a,b)))
#连接a,b俩数组沿着1轴方向,0轴元素个数必须相同
print(np.split(a,3,axis=0))
#沿着0轴方向切割a数组将其分为3个二维数组,结果为列表,默认沿着0轴
print(np.vsplit(a,3))
#沿着0轴方向切割a数组将其分为3个二维数组,结果为列表
print(np.hsplit(a,4))
#沿着1轴方向切割a数组将其分为4个二维数组,结果为列表

#random模块
print(np.random.rand(5,2))
#5行2列的数组,元素是大于等于0小于1的浮点数
print(np.random.randn(5,2))
#5行2列的数组,元素是标准正态分布随机数(平均值0,标准差1)
print(np.random.randint(low=0,high=100,size=5))
#一个列表,有5个大于等于1小于100的整数
print(np.random.normal(loc=10,scale=2,size=5))
#一个列表,有5个平均值是10标准差是2的正态分布随机数

#排序
x=np.array([[3,1,4],
   [2,5,3],
   [1,8,3]])
print(np.sort(x,axis=-1))
#沿着最后一个轴(即1轴)对x数组内元素进行从小到大排序
print(np.argsort(x,axis=-1))
#沿着最后一个轴(即1轴)对x数组内元素进行从小到大排序,展示的结果是元素的索引



#聚合函数(nan可以排除null和异常值)
print(np.sum(x))
#求各元素之和
print(np.cumsum(x,axis=0))
#按照0轴依次累加,也就是从上往下累加
print(np.cumsum(x,axis=1))
#按照1轴依次累加,也就是从左往右累加
print(np.cumprod(x,axis=1))
#从左往右累乘
print(np.cumprod(x,axis=0))
#从上往下累乘
print(np.amax(x))
#求元素中的最大值
print(np.amin(x))
#求元素中的最小值
print(np.mean(x))
#求元素的平均值
print(np.average(x,axis=None,weights=None))
#weights表示权重,它的值要和原数组格式一样,里面各个元素之和等于1

#保存
np.save('SE.npy',x,allow_pickle=True,fix_imports=True)
#allow_pickle表示十分允许使用PICKLE保存数组对象,fix_imports表示十分允许PY2读取3的数据
np.savez('NPZ.npz')

#读取
np.load('NPZ.npz',mmap_mode=None,allow_pickle=True,fix_imports=True)


#数组的广播原理
1,如果两个数组维度数不一样,那么小的数组会补齐维度
比如[1,2,3]+5,会广播成[1,2,3]+[5,5,5]
2,如果两个数组只有一个维度一样,那么小的数组会按照大的数组补齐维度
3,如果两个数组形状在任何一个维度都不一样且没有一个维度是1,就报错。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值