机器学习—数据预处理—Numpy库

Numpy的基本使用

1、导入Numpy库

import numpy as np

2、矩阵运算

np.mat()     # mat只适用于2维矩阵
#矩阵相乘    
A.dot(B)     np.dot(A,B)     A*B
#矩阵求逆矩阵
np.linalg.inv(A)     A.I
#矩阵转置
A.T

np.array()   # 多维矩阵
#矩阵相乘    
A.dot(B)     np.dot(A,B) 
#矩阵求逆矩阵
np.linalg.inv(A)  
#矩阵转置
A.T

3、生成随机整数矩阵

#创建3*3的 0-10 之间的随机整数矩阵
a = np.random.randint(10,size=(3,3))
print(a)
print(a.shape)

[[0 2 4]
 [2 8 2]
 [1 9 1]]
(3, 3)

4、生成对角矩阵

#对角矩阵
print(np.diag([1,2,3]))

[[1 0 0]
 [0 2 0]
 [0 0 3]]

5、矩阵切片

#数组slice切片
A = np.array([[1,2,3,4,5],
			  [6,7,8,9,0],
			  [5,4,3,2,1],
			  [4,5,6,3,2],
			  [8,7,5,6,2]])
			  
print(A[1:3])       	# 1表示从下标为1的行开始,到下标为3的行结束。
print(A[1:2,2])     	# 1:2 表示下标1的行,这行中下标为2的列元素。
print(A[:,1])     	    # :在前 表示所有行元素,1 表示下标为1的列。
print(A[0:3:2,3])   	# 0:3:2 行下标从0到3步长为2中,下标为3的列

[[6 7 8 9 0]
 [5 4 3 2 1]]
[8]
[2 7 4 5 7]
[4 2]

6、矩阵合并(np.vstack() np.hstack())

#数组合并
# np.vstack()  np.hstack()  括号中为元组
例1
a = np.array([1,2,3])
b = np.array([4,5,6])

print(np.vstack((a,b)))      # np.vstack() 按行合并,列不变    --纵向合并
print(np.hstack((a,b)))      # np.hstack() 按列合并,行不变    --横向合并

[[1 2 3]
 [4 5 6]]
[1 2 3 4 5 6]

例2
c = np.array([[1],[2],[3]])  # np.vstack() 按行合并,列不变	 --纵向合并
d = np.array([[4],[5],[6]])  # np.hstack() 按列合并,行不变   --横向合并
print(np.vstack((c,d)))
print(np.hstack((c,d)))
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]]
[[1 4]
 [2 5]
 [3 6]]

7、矩阵连接(np.vstack() np.hstack())

#数组连接
# np.r_  np.c_        方括号来堆叠数组。
a = np.array([1,2,3])
b = np.array([4,5,6])
aa = np.r_[a,0,0,b]   #row(行)    按行连接
print(aa.shape)
print(aa)

(8,)
[1 2 3 0 0 4 5 6]

bb = np.c_[a,b]      #column(列) 按列连接
print(bb.shape)
print(bb)

(3, 2)
[[1 4]
 [2 5]
 [3 6]]

8、矩阵广播

#数组广播
a = np.array([[0],[1],[2],[3]])
b = np.array([1,2,3])
print(a+b)
print(a*b)
print(a/b)

[[1 2 3]
 [2 3 4]
 [3 4 5]
 [4 5 6]]
 
 [[0 0 0]
 [1 2 3]
 [2 4 6]
 [3 6 9]]
 
[[0.         0.         0.        ]
 [1.         0.5        0.33333333]
 [2.         1.         0.66666667]
 [3.         1.5        1.        ]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值