机器学习基础(二)之numpy基础
程序员文章站
2022-03-09 10:07:06
...
numpy基础
‘’‘
numpy初始化
’‘’
import numpy as np //引用anaconda python中的numpy
X = np.arange(10) //用numpy创建一个一维数组
X = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) //运行结果
‘’‘
#reshape 对数组进行重塑
’‘’
x = np.arange(15).reshape(3,5) //塑造成3行5列
x = array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
‘’‘
#切片,对python中的列表进行切片处理,对于二维一样
’‘’
X = np.arange(10)
X[::-1] //从逆序派过来
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
X[:3] //获取下标0-2的元素,左闭右开
array([0, 1, 2])
‘’‘
#np中矩阵的连接方法
’‘’
x = np.arange(15).reshape(3,5)
x = array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
#concatenate:
np.concatenate([x,x]) //两个矩阵相叠
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
#vstack :垂直方向相叠
#hstack :水平方向相叠,这两个可以自行体会一下
‘’‘
#np中矩阵的分割方法
’‘’
x = np.arange(0,15)
x1,x2,x3 = np.split(x,[3,7]) //注意此时需要用np.split(矩阵名,列表)二不能用 x.split来做,并且此时分为三部分
x = x.reshape([3,5])
x = array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
#相对应于连接,也有vsplit和hsplit
upper,lower = np.vsplit(x,[2])
left,right = np.hsplit(x,[2])
‘’‘
#np中矩阵的运算
’‘’
#支持 * + 并且与python中的有所区别
python:n = 10
L = [i for i in range(n)]
L*2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
np: L = np.arange(1,16).reshape(3,5)
L*2 = array([[ 2, 4, 6, 8, 10],
[12, 14, 16, 18, 20],
[22, 24, 26, 28, 30]]) //直接乘以两倍
#dot(两个矩阵相乘)
#np.linalg.inv() (求某个矩阵的逆矩阵)
#np.sim() (求和操作)
#mean(),median(),max(),min() 统计学基础上有
#
‘’‘
#np中的arg,就是求索引index的值
’‘’
L = np.random.random(10)
L = array([0.35656266, 0.92360074, 0.05858776, 0.54221545, 0.06105745,
0.71913071, 0.77703987, 0.91120598, 0.48754257, 0.16783168])
np.argmin(L) 得出2,对应下标是最小值
#axis = 0 对应按行 axis = 1 按列
‘’‘
#np中的fancy indexing
’‘’
X = np.arange(16)
ind = [3,5,8]
X[ind] 相应得出array([3, 5, 8])
x = X.reshape(4,-1) //reshape(4【代表几行】,-1【代表分4行,自动分为几列】)
x = array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
row = np.array([1,3,2]) //想对应行的下标
col = np.array([2,1,3]) //想对应列的下标
x[row,col] = array([ 6, 13, 11])
#注意,python也支持[True,False]这中bool的元素
#注意,而且比较的结果也全是bool值,可以自行体会一下
上一篇: 13. 罗马数字转整数(C++)[简单]