Numpy

1. 数据类型

名称描述
bool_布尔型数据类型(True 或者 False)
int_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
intc与 C 的 int 类型一样,一般是 int32 或 int 64
intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
int8字节(-128 to 127)
int16整数(-32768 to 32767)
int32整数(-2147483648 to 2147483647)
int64整数(-9223372036854775808 to 9223372036854775807)
uint8无符号整数(0 to 255)
uint16无符号整数(0 to 65535)
uint32无符号整数(0 to 4294967295)
uint64无符号整数(0 to 18446744073709551615)
float_float64 类型的简写
float16半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
float32单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
float64双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
complex_complex128 类型的简写,即 128 位复数
complex64复数,表示双 32 位浮点数(实数部分和虚数部分)
complex128复数,表示双 64 位浮点数(实数部分和虚数部分)
名称描述
objectpython对象类型
string_固定长度的字符串类型
unicode_固定长度的unicode类型
NaN缺失数据

2. 库

2.1 创建数组

函数/方法描述
np.array()创建
np.ones()创建全是1的数组
np.zeros()创建全是0的数组
np.full(size=,fill_value=n/str)创建全是某值的数组
np.arange(start = n0,stop = n1,step = n2)等差数组,根据步长分组 ,左闭右开
np.linspace(start = n0,stop = n1,num = n2)等差数组,根据元素数量分组(默认50个数) ,左右闭合

随机数组

函数/方法描述
np.random.random(n0,n1,size = [3,4])随机数组(float,0~1之间)
np.random.randint(n0,n1,size = [3,4])随机数组(int)
np.random.uniform(n0,n1,size)随机数组(float)
np.random.choice(a,size)随机数(组),可重复取数,a为一个数时,从{0,a)取值;a是array时,从数组中随机取值
np.random.permutation(n)对0~n1整数随机重排
np.random.randn(n)正态分布,平均值=0,标准差=1
np.random.normal(loc=平均值,scale=标准差,size)规定平均值及标准差的正态分布
np.random.RandomState(随机种子)伪随机数生成器
np.random.seed(随机种子)伪随机数生成器

2.2 arr数据属性

函数说明
属性查看.ndim数组轴数
.shape数组尺寸形状
.size数组元素总数
.dtype数组数据类型
.itemsize各元素大小
.base根数据
.nbytes数组总字节大小,nbytes=size*itemsize
索引(二维为例)arr[0]返回第一维数组
arr[0,0] 或 arr[0][0]返回第一维度内的第一个数(数据原类型)
arr([0],[0])返回第一维度内的第一个数(array类型)
arr[[0,1]]花式索引,将数据复制到新数组中
形状操作arr.reshape()更改形状
arr.reshape((-1,n))数据会根据n自动计算出新的形状
arr.T形状转置
arr[:,newaxis]形状转置
np.transpose(arr,axes = (1,0,2))改变数组维度,如shape=(3,4,5),则变为shape=(5,4,3)
排序函数arr.sort()排序并更改数组顺序
np.sort(arr)排序输出但不改变数组顺序,axis可以更改轴
arr.argsort()返回排序后的索引
np.partition(arr,K,axis)将前K个值分隔放到最左边,其他值放右边
np.argpartition(arr,K,axis)将索引值按np,partition规则分割
arr[::-1]倒序

2.3 文件IO操作

函数说明
文件IO操作np.save(‘x_arr’,x)单个数组保存
np.savez(‘arr.npz’,x_arr = x,y_arr =y)多条数组保存
np.savez_compressed(‘arr.npz’,x_arr = x,y_arr =y)多条数组保存,并压缩文件大小
np.load(‘arr.npz’)[x_arr]加载数组文件
np.savetxt(’/arr.csv’,arr,fmt=’%d’ ,delimiter = ‘,’)输出为csv文件
np.loadtxt(’/arr.csv’,delimiter = ‘,’,dtype = 32int)加载csv文件

2.4 数组操作

函数说明
数据类型转换np.asarray(arr,dtype=‘float16’)转换数据类型
np.astype(dtype=np.float16)转换数据类型
去重arr.unique()去重
视图和深拷贝arr.view()用arr创建视图(浅拷贝)
arr.copy()用arr深拷贝一份
插入np.append(arr,values,axis)在数组末尾增加数据
np.insert(arr, obj, values, axis)在数组特定位置(obj)插入数据
堆叠(串联)np.concatenate([[arr1],[arr2]],axis = 1)1代表列
np.hstack((arr1,arr2))
堆叠(并联)np.array([arr1,arr2])
np.concatenate([[arr1],[arr2]],axis = 0)0代表行
np.vstack((arr1,arr2))
拆分np.split(arr,indices_or_sections=2,axis=0)在第一维度平均分为两份
np.split(arr,indices_or_sections=[2],axis=1)在第二维度以索引2为分界分开
np.vsplit(arr,indices_or_sections=2)竖直方向平均分为两份
np.hsplit(arr,indices_or_sections=[2])垂直方向以索引2为分界分开
转化arr.tolist()数组转化为列表
arr.tobytes()转化为字节

2.5 数组计算

  • 基本计算:数组之间可以进行加减乘除等运算
  • 逻辑运算:数组之间可进行比较(arr1 == arr2)运算,得到bool值的数组
  • 与标量运算:数组与普通数组之间可进行加减乘除等运算
  • *=、+=、-=操作:与数组和数字之间都可使用,会修改现有数组,⽽不是创建⼀个新数组
  • 以上计算返回的都是np.array数组
函数说明
通用函数np.abs(arr)绝对值
np.sqrt(arr)平方根
np.square(arr)平方
np.exp(arr)以自然常数e为底的指数函数
np.log (arr)以幂(真数)为自变量,指数为因变量,底数为常量的函数
np.sin、cos、tan(arr)三角函数
np.sinh、cosh、tanh(arr)双曲三角函数
np.maxinmum、minimum(arr)最大、最小值
np.count_nonzero(条件)统计符合条件的返回True的记录个数
np.all(arr)测试沿着提到的轴的所有数组元素的求值是否为True
np.any (arr)测试沿着提到的轴的任一数组元素的求值是否为True
np.inner (arr)返回一维数组的向量内积。对于更高的维度,它返回最后一个轴上的和的乘积
np.clip(arr)截取一定范围内的数
np.round(arr)四舍五入
np.trace(arr)返回沿数组对角线的和
np.ceil(arr)上取整
np.floor (arr)下取整
where函数np.where(condition,arr_true,arr_false)条件函数
集合运算函数np.intersect1d(arr1,arr2)交集
np.union1d(arr1,arr2)并集
np.setdiff1d(arr1,arr2)差集
数学和统计函数以下函数默认对整个数组计算,亦可以指定维度分别计算如:arr. min(axis=0)表示每行的最小值
min、max最大、最小值
mean平均值
median中位数
sum计算总和
std标准差
var方差
cumsum元素累加求和
cumprod元素累积乘积
argmin、argmax最小、最大值索引
argwhere条件索引
cov矩阵的协方差矩阵
corrcoef矩阵相关系数

2.6 线性代数

函数说明
矩阵计算arr1.dot(arr2)arr1行乘以arr2列
np.dot(arr1,arr2)arr1行乘以arr2列
导入from numpy.linalg import inv,det,eig,qr,svd
int(arr)矩阵的逆
det(arr)⾏列式
eig(arr)特征值和特征向量
qr(arr)qr分解值
svd(arr)svd分解值

3. 常见问题

3.1 使用“and、or”还是“&、|”

and 和 or 判断整个对象是真或假,而 & 和 | 是指每个对象中的比特位

当你使用 and 或 or 时,就等于让 Python 将这个对象当作整个布尔实体

当你对整数使用 & 和 | 时,表达式操作的是元素的比特

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值