Python机器学习数据科学包-numpy

首页 » Python » 正文

1. numpy创建矩阵

#创建矩阵,并指定矩阵元素类型
array = np.array([[1,2,3],[2,3,4]],dtype=np.float64)
print(array)
#根据数组创建矩阵
a = np.array([2,23,4])
print(a)
#创建零矩阵
a = np.zeros((2,3))
print(a)
#创建空值矩阵
a = np.empty((3,4))
print(a)
#矩阵重新排列
a = np.arange(0,20,2).reshape((2,5))
print(a)
#分段创建矩阵
a = np.linspace(1,10,20)
print(a)

2. numpy的基础运算

2.1 矩阵的加减

当两个矩阵维度相同时,可以进行加减操作

a = np.array([1,2,3])
b = np.array([2,3,4])
print(a+b)

2.2 矩阵的幂

矩阵**n:矩阵的n次方

2.3 矩阵和数字的比较操作

矩阵(>,<,==,!=)数字,返回True/False组成的矩阵

a = np.array([[1,2],[4,5]])
print(a<5)

2.4 矩阵的乘法

矩阵的乘法可以分为两种:两个矩阵相乘和两个矩阵对应元素相乘

a = np.array([[1,2],[4,5]])
b = np.array([[3,4],[5,6]])
c = a*b #两个矩阵相乘
d = np.dot(a*b) #两个矩阵点乘   
# d = a.dot(b) #和上一行操作效果相同 
print(c)
print(d)

2.5 矩阵的其他运算

2.5.1 生成随机矩阵

a = np.random.random((2,2)) #生成一个2*2的随机矩阵,每个元素是0-1之间的随机数
print(a)

2.5.2 矩阵的求和,最大值,最小值

a = np.random.random((2,2))
print(a)
s = np.sum(a) #矩阵求和
print(s)
s1 = np.sum(a,axis=1) #每行求和
print(s1)
min = np.min(a,axis=0) #每列求最小值
print(min)
max = np.min(a)
print(max)
#返回矩阵最大值,最小值的索引
print(np.argmin(a))
print(np.argmax(a))
print(np.mean(a)) #计算平均值
print(np.median(a)) #计算中位数

2.5.3 矩阵的转置

A = np.arange(14,2,-1).reshape((3,4))
print(np.transpose(A))
print(A.T)

2.5.4 矩阵的clip操作

A = np.arange(14,2,-1).reshape((3,4))
print(np.clip(A,5,9)) #将矩阵中小于5的数转成5,大于9的数转成9

2.5.5 矩阵的行和列遍历

A = np.arange(3,15).reshape((3,4))
for row in A: #行遍历
    print(row)
for column in A.T: #列遍历
    print(column)

2.5.6 矩阵的展开

A.flatten():矩阵的展开,返回展开的矩阵,A不变
A.flat:返回一个将A展开后的迭代器

A = np.arange(3,15).reshape((3,4))
print(A.flatten()) #矩阵展开
for item in A.flat: #列遍历
    print(item)

2.6 矩阵的合并

vstack:左右合并
hstack:上下合并
concatenate:多个矩阵的合并

A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack((A,B))
D = np.hstack((A,B))
print(C)
print(D)

A = np.array([1,1,1])[:,np.newaxis]
B = np.array([2,2,2])[:,np.newaxis]
E = np.concatenate((A,B,B,A),axis=0) #横向合并
F = np.concatenate((A,B,B,A),axis=1) #纵向合并
print(E)
print(F)

2.7 矩阵的分割

A = np.arange(12).reshape((3,4))
print(A)
print(np.split(A,2,axis=1))#纵向分割成两部分
print(np.vsplit(A,3))#纵向分割
print(np.hsplit(A,2))#横向分割

2.8 矩阵的拷贝

深拷贝:单独开辟内存,拷贝值
浅拷贝:不单独开辟内存,拷贝,拷贝前后元素指向同一地址

a = [1,2,3,4]
b = a #浅拷贝
c = a.copy() #深拷贝
a[0] = 10
print(b) #[10, 2, 3, 4]
print(c) #[1, 2, 3, 4]

未经允许不得转载:作者:1275-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python机器学习数据科学包-numpy》 发布于2020-11-30

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录