numpy基础运用

numpy基础知识1:创建数组

import numpy as np
#数组的基本属性
#二维数组
A =  np.array([[1,2,3],[4,5,6]])
print('A=\n',A)
print('数组的尺寸(几行几列):',A.shape)
print('查看第一个维度的大小(即行数):',A.shape[0])
print('查看第二个维度的大小(即列数):',A.shape[1])
print('数组的维数:',A.ndim)
print('元素的类型',A.dtype)
print('元素的总个数:',A.size)
print('每个元素的字节数:',A.itemsize)
print('数组所有元素的总字节数:',A.nbytes)
print('='*20,'分界线','='*20)

#一维数组
a = np.array([3.1,2.7,6.5])
print('a=',a)
print('数组的尺寸(几行几列):',a.shape)
print('查看第一个维度的大小(即行数):',a.shape[0])
print('数组的维数:',a.ndim)
print('元素的类型',a.dtype)
print('元素的总个数:',a.size)
print('每个元素的字节数:',a.itemsize)
print('数组所有元素的总字节数:',a.nbytes)
print('='*20,'分界线','='*20)

#转换数组的类型
#(1)定义的同时转换数组元素的类型
a = np.array([1,2,3],dtype=float)
print('a=',a)

#(2)数组定义好之后转换数组元素的类型
b = np.array([2.1,3.7,6.5])
print('b=',b)
c = b.astype(int)  #这里不是四舍五入,只是保留整数部分
print('c=',c)
print('='*20,'分界线','='*20)

#创建数组
#(1)用array创建数组
A = np.array([[[1,2,3],[4,5,6]],[[1,3,5],[2,4,6]]])
print('三维数组A=\n',A)

# 创建数组并指定维数
B = np.array([1,2,3],ndmin=3)

#重新设置数组的尺寸
A = np.array([[1,2,3],[4,5,6]])
print('原来的A=\n',A)
A.shape=3,2
print('改变后的A=\n',A)
print('='*20,'分界线','='*20)
#(2)用arange创建数组
a = np.arange(12)
print('a=',a)
#改变形状:方法一
a.shape=3,4
print('a=',a)
#方法二(不改变原始的a)
A = np.reshape(a,(2,6))
print('A=\n',A)

#(3)用linspace创建等差数组
#生成0-10之间的10个数
D1 = np.linspace(0,10,11)#(包含10)
print('D1=\n',D1)
D2 = np.linspace(0,10,5,retstep=True)
print('D2=\n',D2)
#retstep默认为False,不显示步长
#endpoint默认True,包含终点

#(4)用logspace创建等比数组
print('='*20,'分界线','='*20)




#1.创建全0数组
A = np.zeros((2,3))  #创建2行3列的全0数组
print('A=\n',A)

#2.创建全1数组
B = np.ones((2,3))  #创建2行3列的全1数组
print('B=\n',B)

#3.创建单位矩阵
C = np.eye(4)  #创建4行4列的单位矩阵
print('C=\n',C)

#4.创建对角矩阵
D = np.diag((1,2,3,4))
print('D=\n',D)

#5,创建空数组
E = np.empty((3,2))
print('空数组E=\n',E)
#创建元素全为2的数组
E.fill(2)
print('空数组E=\n',E)

#6.创建同型数组
A =  np.array([[1,2,3],[4,5,6]])
#(1)生成与A同型的全0数组
A1 = np.zeros_like(A)
print(A1)
#(2)生成与A同型的全1数组
A2 = np.ones_like(A)
print(A2)
#(3)生成与A同型的空数组
A3 = np.empty_like(A)
print(A3)

numpy基础知识2:生成随机数组及数组的拼接

#生成随机数组
import numpy as np
np.set_printoptions(2)
#1.随机生成0-1的小数
a = np.random.random(6)   #一维数组
print(a)
A = np.random.random((3,4))    #生成3行4列的二维随机数组
print(A)
print('='*20,'分界线','='*20)
#2.随机生成指定范围的小数
#生成 5-10之间的随机小数
b = np.random.uniform(5,10,2)
print(b)
B = np.random.uniform(5,10,(3,3))
print(B)
print('='*20,'分界线','='*20)
#3.随机生成指定范围的整数
#生成0-20之间的随机整数
c = np.random.randint(0,20,5)
print(c)
C = np.random.randint(0,20,(3,3))
print(C)
print('='*20,'分界线','='*20)

#4.随机生成均匀分布
d = np.random.rand(6)
print(d)

#5.随机生成正态分布
e = np.random.randn(5)
print(e)

#6.随机种子
np.random.seed(1)
A = np.random.randint(1,10,(2,3))
print('A=\n',A)



#数组的拼接
A = np.zeros((3,3))
B = np.ones((3,3))

#(1)垂直拼接(上下合并)
#方法一:
C1 = np.r_[A,B]
print('C1=\n',C1)
#方法二:
print('='*20,'分界线','='*20)
C2 = np.vstack([A,B])
print('C2=\n',C2)
#方法三:
print('='*20,'分界线','='*20)
C3 = np.concatenate([A,B],axis=0)
print('C3=\n',C3)
print('='*20,'分界线','='*20)
#(2)水平拼接(左右合并)
#方法一:
D1 = np.c_[A,B]
print('C1=\n',C1)
#方法二:
print('='*20,'分界线','='*20)
D2 = np.hstack([A,B])
print('C2=\n',C2)
#方法三:
print('='*20,'分界线','='*20)
D3 = np.concatenate([A,B],axis=1)
print('C3=\n',C3)

numpy基础知识3:数组的索引切片以及升降维

import numpy as np
#1.一维的索引和切片
# 1-12,12个数
a = np.arange(1,13)
print('a=\n',a)

#(1)索引      下标从零开始
print('获取第3个元素:',a[2])
print('获取最后1个元素:',a[-1])

#(2)切片
print('获取第4个到第8个元素',a[3:8])   #前包后不包
print(a[:])    #顺序全取
print(a[::-1])     #倒序全取



#2.二维的索引和切片
A = a.reshape(3,4)
print('A=\n',A)
#(1)索引
print('获取第2行第3列元素',A[1,2])
print('获取第1行的元素',A[0,:])
print('获取第2列的元素',A[:,1])
print('获取最后一列的元素',A[:,-1])

#2.切片
print('获取前2行,前3列的元素\n',A[:2,:3])
print('获取6,7,10,11元素\n',A[1:3,1:3])

#3.改变数组的形状
#(1)一维变多维
a = np.arange(1,13)
#变二维
A = a.reshape(2,6)
print('A=\n',A)
#变三维
AA = a.reshape((3,2,2))
print('AA=\n',AA)

#(2)多维变1维
#二维变一维:展平
A=np.array([[2,-1,0],[1,3,1],[0,1,2]])
#方法一:
b = A.ravel()
print('b=',b)
#方法二:
c = A.flatten()
print('c=',c)

numpy基础知识4:数组元素的数学运算及统计值

import numpy as np
np.set_printoptions(3)   #保留三位小数
a = np.array([1,2,3,4,5])
print('a=',a)
#1.幂函数
print('='*20,'1.幂函数','='*20)
#(1)算数平方根(根号)
print('每个元素的算数平方根:',np.sqrt(a))
print('每个元素的算术平方根:',a**(1/2))
print('每个元素的算术平方根:',np.power(a,1/2))

#(2)平方
print('每个元素的平方:',np.square(a))
print('每个元素的算术平方:',a**2)
print('每个元素的算术平方:',np.power(a,2))

#(3)立方根
print('每个元素的算术立方根:',a**(1/3))
print('每个元素的算术立方根:',np.power(a,1/3))

print('='*20,'2.指数函数','='*20)
#2.指数函数
print('e=e^1=',np.exp(1))

print('='*20,'3.对数函数','='*20)
#3.对数运算
print('ln1=',np.log(1))
print('lne=',np.log(np.exp(1)))
print('以2为底的对数log2(8)=',np.log2(8))

print('='*20,'4.绝对值函数','='*20)
#4.绝对值运算
print('|-7|=',np.abs(-7))
a = np.array([-1,-2,-3,-4])
print('|a|=',np.abs(a))

print('='*20,'5.符号函数','='*20)
#5.符号函数
print('a的符号函数:',np.sign(a))

print('='*20,'6.三角函数','='*20)
#6.三角函数运算
#正弦函数
print('sin0=',np.sin(0))
print('sinΠ=',np.sin(np.pi))
#余弦函数
print('cos2Π',np.cos(2*np.pi))
print('cosΠ/2',np.cos(np.pi/2))
print('='*20,'7.比较大小','='*20)
#7.比较大小
#10-20之间的5个随机整数
a = np.random.randint(10,20,size=5)
b = np.random.randint(10,20,size=5)
print('a=',a)
print('b=',b)
print(np.maximum(a,b))  #一个个元素进行逐一比较,返回较大的数
print(np.minimum(a,b))  #一个个元素进行逐一比较,返回较小的数

print('='*20,'统计相关函数','='*20)
#统计相关函数
#1.一维的情况
a = np.arange(1,6)
print('a=',a)
print('元素的和:',np.sum(a))
print('元素的最大值:',np.max(a))
print('元素的最小值:',np.min(a))
print('元素的平均值:',np.mean(a))
print('元素的中位数:',np.median(a))  #按照从小到大顺序排列,位于中间位置的数
print('元素的方差:',np.var(a))
print('元素的标准差:',np.std(a))  #标准差=根号下方差
print('='*20,'分界线','='*20)
#2.二维的情况
A = np.array([[2,-1,0],[1,3,1],[0,1,2]])
print('A=\n',A)
print('所有元素的和:',np.sum(A))
print('每行元素的和:',np.sum(A,axis=1))
print('每列元素的和:',np.sum(A,axis=0))
print('所有元素最大值所在的位置(索引)',np.argmax(A))
print('所有元素的最大值',np.max(A))
print('每行元素的最大值',np.max(A,axis=1))
print('每列元素的最大值',np.max(A,axis=0))

print('所有元素的最小值',np.min(A))
print('所有元素最小值所在的位置(索引)',np.argmin(A))
print('每行元素的最小值',np.min(A,axis=1))
print('每行元素的最小值所在的位置(索引)',np.argmin(A,axis=1))
print('每列元素的最小值',np.min(A,axis=0))
print('每列元素的最小值所在的位置(索引)',np.argmin(A,axis=0))
print('='*20,'分界线','='*20)
#3.叠加和叠乘
#一维的情况
a = np.array([1,3,5,7])
print('a=',a)
print('叠加',np.cumsum(a))  #第i个位置的数就是a中前i个数相加
print('叠乘',np.cumprod(a))  #第i个位置的数就是a中前i个数相乘

#二维的情况
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
print('每列元素的叠加',np.cumsum(A,axis=0))
print('所有元素的叠乘',np.cumprod(A))
print('所有元素的叠加',np.cumsum(A))

print('每列元素的叠乘',np.cumprod(A,axis=0))
print('每行元素的叠加',np.cumsum(A,axis=1))
print('每行元素的叠加',np.cumsum(A,axis=1))
print('='*20,'分界线','='*20)
#4.排序
a = np.random.randint(1,10,15)
print('a=',a)
b = np.sort(a)
print('升序排序后输出',b)
c = b[::-1]
print('降序排序后输出',c)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值