import numpy as np创建
l = [[1,2,3],[4,5,6],[7,8,9]] array = np.array(l, dtype= np.int8) # 根据任意序列型数据生成数组, dtype指定数据类型, 减少占用内存 array = array.reshape((3,3)) # 把数组转换为2*5数组,前提数据量相同 array = np.asarray(l) # 尝试转换为数组 array = np.arange(0, 10, 2, dtype=np.float64)# (类似range生成一维数组) array = np.zeros((3, 3, 3)) # 生成3 * 3 * 3的0数列 array = np.zeros_like(array) # 生成类似array的0数列 array = np.ones((2, 5))# 生成2 * 5的1数列 array = np.ones_like(array) # 生成类似array的1矩 array = np.full((2,5),5) # 生成2*5的值为4的数列 array = np.full_like(array,5) # 生成类似array的值为4的数列 array = np.eye(5) # 生成阶数为5的单位阵随机
np.random.seed(n) # 设定随机数种子(依据种子生成随机数序列) np.random.shuffle(array) # 随机排列序列 np.random.normal(2,3) 2x3正态(高斯)分布数列 np.random.beta(2,3) 2x3beta分布数列 np.random.chisquare(2,3) 2x3卡方分布数列 np.random.gamma(2,3) 2x3伽马分布数列 np.random.uniform(2,3) 2x3均匀[0,1)分布数列 array = np.random.randn(3, 3, 3) # 3*3*3的标准(均值0方差1)正态分布数列 array = np.random.choice([1,2,3],3,replace=false) # 从一维数列中随机选择3个元素replace=false值不重复 array = np.random.rand((3,3,3)) # 生成3*3*3的随机[0,1)的正态分布数列 array = np.random.randint(0,5,(3,3),dtype=np.float32) # 生成[0,5]的3*3离散数列(0,1,2,3,4,5) array = np.random.random((3,3)) # 3*3的[0,1)连续均匀分布数列 array = np.random.binomial(4,0.6,(3,3)) # 进行4次二项分布取样,成功概率为0.6,返回成功次数. 重复3*3次,结果返回3*3数列Ndarray属性
dimension = array.ndim # 获取维数 shape = array.shape # 获取数列大小(类似2*3) dtype = array.dtype # 获取数据格式 size = array.size # 获取数据个数 itemSize = array.itemsize # 获取元素大小数组计算
a1 = np.array([[1,2,3],[4,5,6],[7,8,9]]) a2 = np.array([2,2,2]) a3 = a1+a2 # 两个数列相加,即使形状不完全一样也可以计算,但必须有行数或列数相同 a3 = a1*5
数字n代表要操作那个维度的数据,不填就是操作左右数据,0就是把0维度的当作一个单位操作
mean = a1.mean(n) # 求对应维度的平均值 0代表操作[1,2,3],[4,5,6],[7,8,9]这三个和的平均值,然后降一个维度 sum = a1.sum(n) # 求对应维度的和 1代表[1,2,3],[4,5,6],[7,8,9] 三个分别求和 std = a1.std(n) # 标准差 var = a1.var(n) # 方差 max = a1.max(n) # n不填最大值,填n表示求n维元素的最大值 min = a1.min(n) # 最小值 argmin = a1.argmin(n) # 最小值位置 argmax = a1.argmax(n) # 最大值位置 from numpy import cumsum,cumpord consumed = a1.cumsum(n) # 从0开始累计和 cumpord = a1.cumpord(n) # 从1开始累计积 & | ^累积和
numpy.cumsum(a, axis=None, dtype=None, out=None) axis=0,按照行累加。 axis=1,按照列累加。 axis不给定具体值,就把numpy数组当成一个一维数组。矩阵运算
a = np.array([[1,2,3],[4,5,6]]) b = np.array([[6,23],[-1,7],[8,9]]) c = a.dot(b) # 矩阵a*b; 2x3 dot 3x2 c = np.dot(a,b) a.diag() 获取对角元素返回一维数组,或者把一维数组转换对角阵 a.trace() 对角元素和 array.det() 计算矩阵行列式 a.eig() 计算特征值和特征向量 a.inv() 逆矩阵 a.pinv() 矩阵的伪逆 a.qr() 计算qr分解 a.svd() 计算奇异值分解 a.solve() 求解ax = b 的x a.lstsq() qiuax=b的最小二乘解转置
二维 a = np.arange(18).reshape(6,3) a.t 多维 b = np.arange(24).reshape(2,3,4) a.transpose()布尔数组
a = array([for i in random.choice([0,1])]) a.any() # 是否包含true,或是否全为false a.all() $ 是否全为true,或是否包含false集合操作
unique = np.unique(a1) # 找到唯一值,并排序 in1d = np.in1d(array,[1,2,3]) # 判断array中元素是否在[1,2,3]中,返回布尔数组 union1d = np.nuion1d(array1,array2) # 返回1和2的并集,并排序 intersection1d = np.intersection1d(array1,array2) # 交集 setdiff1d = np.diff1d(array1,array2) 在1中不在2中的 setxor1d = np.setxor1d(array1,array2) 属于1或2,但不属于1和2交集的排序
a = np.array([3,2,5,6,1])
a.sort(n) 排序比较
< > <= >= == !=
a = [-1,2,0,4,-2]
b = np.where(a>0,1,0) # 对位>0,赋值1,否则赋值0
c = [1,2,3,4]
d = [5,6,7,8]
e = np.where(a>0,c,d) # 对位>0,对位赋值c,否则对位赋值d, a也可以为布尔数组合并
a = np.concatenate((a,b),axis=0) # 列方向合并a,b axis=1 行方向合并 axis代表合并的维度0->第0个维度查找赋值
a = [-1,2,0,4,-2]
b = np.where(a>0,1,0) # 对位>0,赋值1,否则赋值0
c = [1,2,3,4]
d = [5,6,7,8]
e = np.where(a>0,c,d) # 对位>0,对位赋值c,否则对位赋值d, a也可以为布尔数组(np.where(a,c,d))则true对位赋值c,false对位赋值d切片
a = array[0:5:2] # 获取前5个间隔为2
a = array[[0,3,2]] # 获取第一行,第四行,第三行
a = array[[0,2],2:5,2] # 获取第一个和第三个元素的,第3到第5个元素的,第3个元素
a = array[0][1] # 获取0行的第2个元素
a = array[...] # 自适应补全索引 [...,2] 取最后一个维度的第二个元素布尔索引
a = np.array([1,2,3,4,5,6]) [0,0,0,0,1,1]
b = np.arange(18).reshape(6,3)
c = b[a>4]
a>4 生成一个布尔数组,在用布尔索引b,即true对应的行
[[12 13 14]
花式索引[15 16 17]]
a = np.arange(18).reshape(6,3)
a[[3,4,5,2],[1,0,2,1]]
转置代表[a[3,1],a[4,0],a[5,2],a[2,1]] [10 12 17 7]
二维 a = np.arange(18).reshape(6,3) a.t 多维 b = np.arange(24).reshape(2,3,4) a.transpose()通用函数 一元
abs(绝对值),fabs(非复数,绝对值) sign(符号) exp(e的次方) log,log10,log2,log1p ceil(向上取整),floor(向下取整),rint(四舍五入) modf(拆分成整数和小数两个部分) isnan(是否是nan值) isfinite(是否有穷,除nan,inf无穷),isinf(是否无穷) sin,arcsin,sinh,arcsinh,cos,arccos,cosh,arccosh,tan,arctan,tanh,arctanh二元
power(a,b) a的b次方 maixmum(a,b) 对位比较最大值) ,fmax 对位比较最大值,忽略nan minimum 对位比较最小值 ,fmin mod 取余 copysign(a,b) 把b的符号赋给a logical_and,logical_or,logical_not,logical_xor 对位元素做逻辑(and与,or或,nor非,xor异或)运算



