NumPy基础1
数组与标量的运算
arr=np.array([[1.,2,.3.],[4.,5.,6.]])
arr*arr
arr-arr
arr**arr
多维数组的切片与索引
a[::-1] python翻转数组
a[3:7:2] 同slice(3,7,2)
b[0]=b[0,:,:]=b[0,...]
使用slice切片
布尔型索引
布尔型索引切片操作与一般索引操作相同
布尔型索引运算
返回副本
data[data<0]=0 即可归负数为0
花式索引
数组转置
arr.T
b.transpose()
改变数组的维度
b=np.arange(24).reshape(2,3,4)#返回拷贝,不修改原数组
b.resize((2,12))#对原数组进行修改
高维展开
b.ravel()
b.flatten()
转置
组合数组
np.hstack((a,b))水平组合
(二维)水平组合同列组合,垂直组合同行组合
深度组合
数组分割
深度分割(至少3维)(一种方法)
数组的属性
b.ndim 维度
b.size 元素个数
b.itemsize
b.nbytes
实数:b.real b.imag
b.flat 类型
b.flat(位置) 元素
数组类型转换
b.tolist()
b.tostring() 会有乱码
b.astype(int) 转为int 丢弃虚部
b.astype('complex')恢复虚部 转为实数
通用函数
切割函数,切割整数部分与小数部分
条件逻辑表达为数组运算
np.where(arr>0,2,-2)#True 设置为2,False 设置为-2
np.where(arr>0,2,arr)#False 不变
同:result=1*cond1+2*cond2+3*-(cond1|cond2)
数学与统计方法
均值函数mean
arr.any() 存在True即返回True
arr.all() 全部True才返回True
sort排序返回副本(np.sort(arr))与实际改变(arr.sort())
unique()唯一化,且返回排序后数组
in1d(arr,查找元素(可以是list))查找是否存在,返回布尔向量
矩阵运算
mat.dot(inv(mat))----得到单位矩阵