欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python观察日志(part27)--数组及矩阵运算

发布时间:2023/12/19 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python观察日志(part27)--数组及矩阵运算 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

学习笔记,仅供参考,有错必究



数组运算

# 布尔数组过滤元素 arr = np.array([1, 2, 3, 4, 5, 6, 7, 10]) arr[arr>4] # 多个布尔表达式过滤元素 arr[np.logical_and(arr > 5, arr < 10)] arr[np.logical_or(arr > 6, arr < 3)] array([ 5, 6, 7, 10])array([6, 7])array([ 1, 2, 7, 10])
# 选择元素 arr = np.array([1, 2, 3, 4, 5]) arr_choice1 = np.array([0, 1, 4], int) arr[arr_choice1]# take选取元素 arr.take(arr_choice1) arr2 = np.array([[1, 2, 7, 8], [3, 4, -1, 0], [5, 6, 3, 1]], float) arr_choice2 = np.array([0, 1, 0], int) arr2.take(arr_choice2, axis = 0) # 按行 arr2.take(arr_choice2, axis = 1) # 按列 array([1, 2, 5])array([1, 2, 5])array([[ 1., 2., 7., 8.],[ 3., 4., -1., 0.],[ 1., 2., 7., 8.]])array([[1., 2., 1.],[3., 4., 3.],[5., 6., 5.]])
# take的逆操作put,将元素放到指定位置 arr = np.array([1, 2, 3, 4, 5]) arr_replace = np.array([20, 40, 60]) arr.put([1, 3], arr_replace) arr array([ 1, 20, 3, 40, 5])

矩阵运算

# 矩阵相乘 m1 = np.array([[1, 2, 3, 4], [1, 2, -1, 0]], float) m2 = np.array(range(12), float).reshape((4, 3)) np.dot(m1, m2) array([[60., 70., 80.],[ 0., 2., 4.]])
# 内积和外积 m1 = np.array([1, 2, 3]) m2 = np.array([0, 2, 1]) np.outer(m1, m2) np.outer(m2, m1) np.inner(m1, m2) array([[0, 2, 1],[0, 4, 2],[0, 6, 3]])array([[0, 0, 0],[2, 4, 6],[1, 2, 3]])7
# 求矩阵的行列式,逆矩阵 m = np.array([[1, 2, 5], [3, 4, 5], [2, 6, 1]]) m #行列式 np.linalg.det(m)#逆矩阵 inv_m = np.linalg.inv(m) inv_m np.dot(m, inv_m) array([[1, 2, 5],[3, 4, 5],[2, 6, 1]])37.99999999999999array([[-0.68421053, 0.73684211, -0.26315789],[ 0.18421053, -0.23684211, 0.26315789],[ 0.26315789, -0.05263158, -0.05263158]])array([[ 1.00000000e+00, -2.08166817e-17, 0.00000000e+00],[ 5.55111512e-17, 1.00000000e+00, -5.55111512e-17],[-5.55111512e-17, -4.85722573e-17, 1.00000000e+00]])
# 特征值及特征向量 m = np.array([[1, 2, 5], [3, 4, 5], [2, 6, 1]]) vals, vecs = np.linalg.eig(m) vals vecs array([10.05542725, -1.45102583, -2.60440142])array([[-0.46078772, -0.91011774, -0.78680234],[-0.6895963 , 0.14477757, -0.10328041],[-0.55868741, 0.38823339, 0.60850246]])

总结

以上是生活随笔为你收集整理的python观察日志(part27)--数组及矩阵运算的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。