当前位置:网站首页>numpy基础操作

numpy基础操作

2022-06-09 23:01:00 石头变钻石?

本篇为回顾一下基础,对照目录,将相关内容复习一遍,一起学习的同学也可以尝试这种方法来筑基。

先导入包

import numpy as np

创建一个向量

vct_row = np.array([1, 2, 3])  # 行向量
vct_col = np.array([[4],
				[5],
				[6]])   # 列向量

创建矩阵

matrix = np.array([[1, 2, 3],
					[4, 5, 6],
					[7, 8, 9]])
mtx = np.mat([[1, 2, 3],
			  [4, 5, 6],
			  [7, 8, 9]])

创建稀疏矩阵

from scipy import sparse
mtx = np.array([[0, 2, 3],
				[4, 0, 0],
				[7, 8, 0]])
# 压缩矩阵
mtx_sparse = sparse.csr_matrix(mtx)

展示矩阵属性

# 行列号
mtx.shape  # 注意最后不带括号
vct.shape
# 数量
mtx.size
# 维数
mtx.ndim

多元素应用某一操作

# 广播(radcasting)
mtx + 100
# 查看书籍还有一种方法
add_100 = lambda i: 1 + 100
vct_add_100 = np.vectorize(add_100)
vct_add_100(mtx)

最大值和最小值

# 最大值
mtx.max(axis = 1)  # axis, 0 is col,1 is row.
np.max(mtx, axis = 0)

# 最小值
mtx.min()
np.min(mtx)

均值、方差、标准差

# 均值
np.mean(mtx, axis = 0)
mtx.mean(axis = 1)
# 方差
np.var(mtx)
mtx.var()
# 标准差
np.std(mtx)
mtx.var()

矩阵变形

mtx.reshape(row, col)  # mtx.size = row*col
mtx.reshape(1, -1)

转置

mtx.T
vct.T

展开矩阵

mtx.flatten()

计算矩阵的秩

np.linalg.matrix_rank(mtx)

计算行列式

np.linalg.det(mtx)

获取矩阵对角线元素

mtx.diagonal(offset = 1)

计算矩阵的迹

mtx.trace()

计算特征值和特征向量

feature, vector = np.linalg.eig(mtx)

计算向量点积

np.dot(vector1, vector2)

矩阵相加或相减

np.add(matrix1, matrix2)
np.subtract(matrix1, matrix2)

矩阵乘法 ##注意区分点乘和对应元素相乘

np.dot(matrix1, matrix2)
matrix1 @ matrix2  # python3.5以上版本,现在应该基本都是了吧?。。
# 对应元素相乘为
matrix1 * matrix2

矩阵的逆

np.linalg.inv(mtx)
若逆矩阵存在,则
mtx @ np.linalg.inv(mtx)应该为单位矩阵,计算机中为无限接近1的值

猴急

实际使用中,部分可能记不住,可以用dir(mtx), dir(vct)查看包含哪些

欢迎大家分享补充

原网站

版权声明
本文为[石头变钻石?]所创,转载请带上原文链接,感谢
https://blog.csdn.net/stone_tigerLI/article/details/109731832