python_Numpy

1.Numpy的ndarry

#载入numpy
import numpy as np

定义ndarry
a=np.array([1,2,3,4])
b=np.array([[1,2,3],[3,2,1]])
c=np.array([[1,2.5,3.14],[13.1,2.6,1.2]])
d=np.array([[1,2,3,4]])

#一些查看命令
b.shape #几×几
b.size #几个数
b.ndim #查看维度

2.Numpy的使用

#向量生成
np.arange(10)
np.linspace(0,10,20)  #范围,个数

#矩阵生成
temp=np.zeros((5,5)) #全一矩阵
temp=np.ones((5,5)) #全零矩阵

#uniform distribution between 0 and 1 #随机输入矩阵
temp=np.random.rand(5,5)

#Gaussian distribution with mean 0 and variance 1 
#高斯 平均值为0 方差为1
temp=np.random.randn(5,5)

#随机生成N个比a大,比b小的数
temp.np.random.randint(a,b,n)

3.矩阵

①矩阵的运算及拼接
#矩阵运算
a+1
b+1
np.dot(a,b)  #乘
a.T          #转置

#矩阵的拼接
np.vstack([a,b])  #垂直
np.hstack([a,b])  #水平

np.concatenate((a,b),axis=0) #垂直
np.concatenate((a,b),axic=1) #水平

np.c_[xx.ravel(), yy.ravel()] 	#np.c_水平连接两个矩阵,要求行数相等。
np.r_[xx.ravel(), yy.ravel()] 	#np.r_垂直连接两个矩阵,要求列数相等。

#矩形形变
np.reshape(2,2)

#多维数组降为一维
np.flatten()	 #返回一份拷贝,对拷贝所做修改不会影响原始矩阵
np.ravel()		 #返回的是视图,修改时会影响原始矩阵
②向量和矩阵索引
#向量索引
print(a[0])
print(a[0:3])   #0号开始,取3-0=3位
print(a[1:3])   #1号开始,取3-1=2位
print(a[3:])	#3号开始,取后面所有
print(a[:3])	#3号之前所有
print(a[1:-1])	#1号开始到最后一个前一位

#矩阵索引
print(b[2,0])	#第二行第1列
print(b[2][0])
print(b[3])		#第三行
print(b[3,:])	#第三行
print(b[:,0])	#第一列

③Numpy常用科学计算
np.log(a)
np.exp(a)		#e

np.min(a)
np.max(a)
np.mean(a)		#平均值
np.median(a)	#中值
np.ptp(a) 		#最大值与最小值的差

np.std(a)		#标准差
np.var(a) 		#方差
np.sum(a)		#求和

np.sin(a)
np.abs(a)		#绝对值

np.argmax(a)	#返回最大值的索引
np.argmin(a)	#返回最小值的索引

np.max(b,0)	#求列的绝对值(0表示列,1表示行)

4.习题

①创建一个10*10的ndarry对象,且矩阵边界全为1,里面全为0
②创建一个5x3随机矩阵和一个3x2随机矩阵,求矩阵积以及其最大值,最小值,平均值和标准差
③ 如果y=10,求解x,(用数值法求解)

在这里插入图片描述

  • 第一题
import numpy as np
a=np.zeros((8,8))
b=np.ones((1,8))

c=np.concatenate((a,b),axis=0)

d=np.concatenate((b,c),axis=0)

e=np.ones((10,1))

f=np.concatenate((d,e),axis=1)

g=np.concatenate((e,f),axis=1)

m=np.ones((10,10))

m[1:9,1:9]=0
  • 第二题
temp1=np.random.rand(5,3)

temp2=np.random.rand(3,2)

temp3=np.dot(temp1,temp2)

print(np.max(temp3))
print(np.min(temp3))
print(np.mean(temp3))
print(np.std(temp3))
  • 第三题
x=np.linspace(0,10,1000)

y=x**np.exp(x/3)


diff=np.abs(y-10)

print(np.argmin(diff))

print(x[np.argmin(diff)])

print(2.6126126126126126**np.exp(2.6126126126126126/3))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值