numpy的使用

numpy 基础使用

在深度学习的数据处理中,numpy可以说是最常用的一个库,笔者总结了部分numpy的常用功能及语法,以便日后查阅。
直接上代码,具体看注释

import numpy as np
vector_row=np.array([1,2,3]) #创建numpy数组
print(vector_row)
[1 2 3]
vector_column=np.array([[1],   #创建numpy数组(列向量)
                        [2],
                        [3]])
print(vector_column)
[[1]
 [2]
 [3]]

from scipy import sparse 
matrix=np.array([[0,0],[0,1],[3,0]])
matrix_sparse=sparse.csr_matrix(matrix) #创建稀疏矩阵
print(matrix_sparse)
  (1, 1)	1
  (2, 0)	3
matrix.shape#形状
(3, 2)
matrix.size
6
matrix.ndim#维数
2

add_100=lambda i:i+100
vectorized_add_100=np.vectorize(add_100)
vectorized_add_100(matrix)  #每个元素+100
array([[100, 100],
       [100, 101],
       [103, 100]])

np.max(matrix,axis=0)#每列最大元素
array([3, 1])
np.max(matrix,axis=1)#每行最大元素
array([0, 1, 3])

matrix=np.array([[1,2,3],[4,5,6],[7,8,9]])#创建矩阵
np.mean(matrix)#均值
5.0
np.var(matrix)#方差
6.666666666666667
np.std(matrix)#标准差
2.581988897471611
np.mean(matrix,axis=0)#每一列的平均值
array([4., 5., 6.])

matrix=np.array([[1,2,3,4],[5,6,7,8]])
matrix.reshape(4,2)#改变矩阵形状
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

matrix.reshape(1,-1)#  -1表示可以根据需要填充数据,1 表示一行
array([[1, 2, 3, 4, 5, 6, 7, 8]])

matrix.T#转置
array([[1, 5],
       [2, 6],
       [3, 7],
       [4, 8]])

matrix.flatten()#将矩阵转换成一维数组(展开)或使用reshape(1,-1)
array([1, 2, 3, 4, 5, 6, 7, 8])

np.linalg.matrix_rank(matrix)#计算矩阵的秩
2

matrix=np.array([[1,2,3],[2,4,6],[3,8,9]])
np.linalg.det(matrix)#计算矩阵的行列式
0.0

matrix.diagonal()#返回对角元素
array([1, 4, 9])

matrix.diagonal(offset=1)#返回主对角线向上偏移量为1的对角线元素
array([2, 6])

matrix.diagonal(offset=-1)#返回主对角线向下偏移量为1的对角线元素
array([2, 8])

matrix.trace()#计算矩阵的迹(对角线元素的和)
14

matrix=np.array([[1,-1,3],[1,1,6],[3,8,9]])
eigenvalues,eigenvectors=np.linalg.eig(matrix)#计算特征值和特征向量
eigenvalues
array([13.55075847,  0.74003145, -3.29078992])
eigenvectors
array([[-0.17622017, -0.96677403, -0.53373322],
       [-0.435951  ,  0.2053623 , -0.64324848],
       [-0.88254925,  0.15223105,  0.54896288]])

vector_a=np.array([1,2,3])
vector_b=np.array([4,5,6])
np.dot(vector_a,vector_b)#计算两个向量的点积
32

matrix_a=np.array([[1,1,1],[1,1,1],[1,1,2]])
matrix_b=np.array([[1,3,1],[1,3,1],[1,3,8]])
np.add(matrix_a,matrix_b)#将两个矩阵相加
array([[ 2,  4,  2],
       [ 2,  4,  2],
       [ 2,  4, 10]])

np.subtract(matrix_a,matrix_b)#将两个矩阵相减
array([[ 0, -2,  0],
       [ 0, -2,  0],
       [ 0, -2, -6]])

np.dot(matrix_a,matrix_b)#两个矩阵相乘
array([[ 3,  9, 10],
       [ 3,  9, 10],
       [ 4, 12, 18]])

matrix_a*matrix_b#对应元素相乘
array([[ 1,  3,  1],
       [ 1,  3,  1],
       [ 1,  3, 16]])

matrix=np.array([[1,4],[2,5]])
np.linalg.inv(matrix)#计算方阵的逆
array([[-1.66666667,  1.33333333],
       [ 0.66666667, -0.33333333]])

np.dot(np.linalg.inv(matrix),matrix)#逆矩阵与原矩阵相乘
array([[1.00000000e+00, 2.22044605e-16],
       [0.00000000e+00, 1.00000000e+00]])

#生成伪随机数
np.random.seed(0)#设置随机数种子
np.random.random(3)#生成3个0到1之间的随机浮点数
array([0.5488135 , 0.71518937, 0.60276338])

np.random.randint(0,11,3)#生成3个1到10之间的随机整数
array([3, 7, 9])

#从平均值是0且标准差是1的正态分布中抽取三个数
np.random.normal(0.0,1.0,3)
array([-1.42232584,  1.52006949, -0.29139398])

#从大于或等于1.0并且小于2.0的范围中抽取3个数
np.random.uniform(1.0,2.0,3)
array([1.27265629, 1.47766512, 1.81216873])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值