版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Forlogen/article/details/89053080
导入库
import numpy as np
创建基本元素
创建向量
#行向量
vector_row = np.array([1,2,3])
#列向量
vector_column = np.array([[1],[2],[3]])
print("vector_column = \n",vector_column)
print("vector_row = \n",vector_row)
创建矩阵
matrix = np.array([[1,2,3],[4,5,6]])
print("matrix = \n",matrix)
#创建一个稀疏矩阵
matrix_sparse = np.array([[0,0],[0,1],[3,0]])
print("matrix_sparse = \n",matrix_sparse)
选择元素
print ("vector_row[1] = \n",vector_row[1])
print (matrix[1,1])
#选择所有的行,返回第2列元素
print (matrix[:,1:2])
矩阵的描述信息
#行列数
print(matrix.shape)
#矩阵元素数量
print(matrix.size)
#维度
print(matrix.ndim)
对矩阵元素进行操作
您希望将某个函数应用于数组中的多个元素。Numpy的vectorize类将函数转换为可以应用于数组或数组切片中的多个元素的函数。
add_100 =lambda i: i+100
#将其转换为一个矩阵函数
vectorized_add_100= np.vectorize(add_100)
print(vectorized_add_100(matrix))
统计函数
所有元素中的最大值、最小值
print(np.max(matrix))
print(np.min(matrix))
#每一列的最大值
print(np.max(matrix,axis=0))
#每一行额最大值
print(np.max(matrix,axis=1))
计算平均值、方差和标准偏差
#均值
print(np.mean(matrix))
#标准差
print(np.std(matrix))
#方差
print(np.var(matrix))
重置矩阵的形状
转换成6*1的矩阵
print(matrix.reshape(6,1))
#转换为行向量,列的大小自动算出
print(matrix.reshape(1,-1))
#转换为行向量
print(matrix.flatten())
转置
print (matrix.T)
代数操作
矩阵的行列式和秩
matrix1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#行列式
print(np.linalg.det(matrix1))
#秩
print(np.linalg.matrix_rank(matrix1))
获取对角线元素
print(matrix1.diagonal())
print (matrix1.diagonal(offset = 1))
print (matrix1.diagonal(offset = -1))
矩阵的迹
print(matrix1.trace())
求特征值和特征向量
eigenvalues ,eigenvectors=np.linalg.eig(matrix1)
print(eigenvalues)
print(eigenvectors)
点乘
vector_1 = np.array([ 1,2,3 ])
vector_2 = np.array([ 4,5,6 ])
print(np.dot(vector_1,vector_2))
矩阵的加减乘除
matrix_1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
matrix_2 = np.array([[7,8,9],[4,5,6],[1,2,3]])
#加
print(np.add(matrix_1,matrix_2))
#减
print(np.subtract(matrix_1,matrix_2))
#乘
print(matrix_1*matrix_2)
矩阵的翻转
print (np.linalg.inv(matrix1))
随机数
Numpy提供了多种生成随机数的方法。
此外,有时返回相同的随机数可以得到可预测的、可重复的结果。我们可以通过设置伪随机生成器的“种子”(一个整数)来实现这一点。
具有相同种子的随机过程总是会产生相同的结果
产生随机数
np.random.seed(1)
print(np.random.randint(0,11,3))
print(np.random.normal(1.0,2.0,3))