Numpy 基础
注:以下代码中np为numpy库的简写
一、创建array
# create array with datetype int16 a = np.array([[1,2,3],[2,4,6]], dtype=np.int16) # all zeros array b=np.zeros((2,2),dtype=int) #all ones array c=np.ones((3,4), dtype=np.int) #numpy range1~10之间,公差为1的等差数列 d=np.arange(1,10,1) #生成[0,4)之间步长为1的等差数列 e=np.arange(0,4, 2) #linespace 生成1~10之间只有2个数的等差数列 f=np.linspace(1,10,2,dtype=np.int) #输出结果 print('数组 a:', a) print('全0数组b:', b) print('全1数组c:', c) print('[1,10) 步长为1的等差数列 d:', d) print('[0,4)步长为2的等差数列 e:', e) print('[1,10) 等分为5份的数列 f', f)
终端结果
二、运算
#四则运算 a=np.array([2,4,6]) b=np.arange(1,4) c=a+b d=a-b e=a*b f=a/b print('a:', a) print('b:', b) print('加法 c:', c) print('减法 d:', d) print('乘法 e:', e) print('除法 f:', f) #<, >, ==逻辑运算 g=a>2 h=a<6 j=a==4 print('大于 g:', g) print('小于 h:', h) print('等于 j:', j) #指数运算、三角函数 k=a**2 l=np.sin(a) print('平方 k:', k) print('正弦 l:', l) #矩阵乘法 m=np.transpose(np.array([1,1,1]))#矩阵转置 n=np.dot(a,m)#矩阵乘法 print('矩阵乘法 n:', n)
输出结果:
三、统计运算
#求和,最小值,最大值 a=np.arange(12).reshape((3,4)) print('a:', a) print('所有元素之和:', np.sum(a))#行向求和 print('每行元素之和:', np.sum(a, axis=1))#行向求和 print('最小值:', np.min(a))#求最小值 print('每行最小值:', np.min(a, axis=1))#行向求最小值 print('最大值:', np.max(a))#求最大值 print('每行最大值:', np.max(a, axis=1))#行向求最大值 print('最小值索引', np.argmin(a)) print('最大值索引', np.argmax(a)) #平均值、中位数 print('平均值', np.mean(a)) print('每一行的平均值', np.mean(a, axis=1)) print('中位数', np.median(a)) print('每一列的中位数', np.median(a, axis=0)) #非0元素的索引 print('大于6的元素: ', a>6) mask=np.nonzero(a>6) print('非0元素所在的行: ', mask[0]) print('非0元素所在的列: ', mask[1])
终端输出:
四、array取值
# array 取值 a=np.arange(2,14).reshape((3,4)) print('a: ', a) print('取索引为1的行:', a[1, :]) print('取第1行,列数范围为[0,2)的值:', a[1,0:2]) print('取索引为2的列:', a[:,2]) print('取索引为[1,2]的元素:', a[1,2]) print('矩阵flatten:', a.flatten())
四、array合并
#array合并 a=np.ones((1, 3)) b=np.zeros((1,3)) print('a: ', a,'shape :', a.shape) print('b: ', b) print('a,b列向合并:', np.vstack((a,b))) print('a,b行向合并:', np.hstack((a,b))) print('a,a,b,b 列向合并:', np.concatenate((a,a,b,b), axis=0)) #矩阵拓维 c=np.arange(3) print('c', c, '原来的shape :', c.shape) print(c[:,np.newaxis], 'shape: ', c[:,np.newaxis].shape)
五、array分割
#array分割 a=np.arange(12).reshape((3,4)) print('a: ', a) print('将a按列等分为两部分', np.split(a,2,axis=1)) print('将a按列分为三部分', np.array_split(a,3,axis=1)) print('将a按行等分为三部分', np.split(a,3,axis=0))