Numpy的基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 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))

猜你喜欢

转载自blog.csdn.net/Forlogen/article/details/89053080