首页 > 编程语言 >Python Numpy 矩阵运算

Python Numpy 矩阵运算

时间:2024-04-22 17:24:06浏览次数:28  
标签:Python 矩阵 print multiply np output array Numpy

目录

1 前言

Python中经常涉及到矩阵运算,其借助于Numpy库进行,因此本文记录一些基于Numpy的矩阵运算

2 点积与矩阵乘法

矩阵的点积(dot product),又称为内积(inner product)
$a = (x_1, y_1), b = (x_2, y_2)$,则$a \cdot b=x_1 x_2 + y_1 y_2$

2.1 np.dot()

如果参与运算的是两个一维数组,则是内积

import numpy as np

a = np.array([1,2,3])
b = np.array([1,2,3])

print(np.dot(a,b))
# output: 14

如果参与的是两个二维以上数组,则结果为矩阵乘法

A = np.array([[1,2,3],
              [4,5,6]])

B = np.array([[1,2],
              [3,4],
              [5,6]])

print(np.dot(A, B))
# output:[[22 28]
#  [49 64]]

2.2 np.matmul()和@

对于矩阵乘法,更推荐np.matmul和@

A = np.array([[1,2,3],
              [4,5,6]])

B = np.array([[1,2],
              [3,4],
              [5,6]])

print(np.matmul(A, B))
print(A @ B)


# output: [[22 28]
# [49 64]]

# [[22 28]
#  [49 64]]

2.3 np.multiply和*

对于矩阵的标量运算(各个位置的乘积),则考虑用np.multiply和*

A = np.array([[1,2,3],
              [4,5,6]])

B = np.array([[1,2,3],
              [4,5,6]])

a = np.array([1,2,3])
b = np.array([1,2,3])

print(np.multiply(A, B))
print(np.multiply(a, b))

# output: [[ 1  4  9]
# [16 25 36]]

# [1 4 9]

3 矩阵的逆

在坐标变换的时候,常常涉及到矩阵求逆,使用命令numpy.linalg.inv()

A = [[1,2],[3,4]]
np.linalg.inv(A)

# output: array([[-2. ,  1. ],
#        [ 1.5, -0.5]])

4 Ref

  1. https://blog.csdn.net/weixin_43977640/article/details/109908976
  2. https://blog.csdn.net/FrankieHello/article/details/103510118

标签:Python,矩阵,print,multiply,np,output,array,Numpy
From: https://www.cnblogs.com/liuliu55/p/18151001

相关文章

  • python+appium+unittest做app自动化测试
    1.需要安装一些列的软件:(1)java(2)androidsdk:  https://www.cnblogs.com/chenxiaomeng/p/16544481.html(3)AppiumServerGUI(4)AppiumInspector (3和4老版本是一个)2.打开AppiumServerGUI直接点击startServer即可,使用默认配置 3.打开 AppiumInspectorremot......
  • python监控MongoDB服务进程,故障钉钉告警
     服务器1xx.168.8x.77#!/usr/bin/python#!_*_coding:utf-8_*_importosimportsysimporttimemongo_ip='192.168.xx.77'ports=['x001','x002']defport(ip,port):  response=os.popen("tcping %s%s|grepopen|awk-F'&......
  • 在Python中的for循环
    在Python中的for循环for循环:用于遍历序列(如列表、元组、字典、集合或字符串)或其他可迭代对象。pythonforiinrange(10):#这将循环10次,i的值从0到9print(i)while循环:当给定条件为真时,重复执行代码块。pythoni=0whilei<10:#这将循环10次print(i)i......
  • python 多并发
    多并发实现1#!/usr/bin/python2#-*-coding:utf-8-*-34"""5@File:.py6@Description:7@Time:2024/04/2210:00:008@Author:9@Version:1.010@Contact:[email protected]"""1213impor......
  • Python实现下载文件的三种方法
    下面来看看三种方法是如何来下载zip文件的:方法一: importurllibprint"downloadingwithurllib"url='http://www.jb51.net//test/demo.zip'urllib.urlretrieve(url,"demo.zip") 方法二: importurllib2print"downloadingwithurllib2"u......
  • 使用pyppeteer 下载chromium 报错 python pyppeteer 调用谷歌翻译api
    https://registry.npmmirror.com/binary.html?path=chromium-browser-snapshots/Win_x64/手动下载安装包 修改文件C:\Users\luyan\AppData\Local\Programs\Python\Python312\Lib\site-packages\pyppeteer\chromium_downloader.py #修改这段代码defdownload_chromium()-......
  • Python实现批量下载文件的示例代码
    前言下载文件是我们在日常工作中常常要做的一件事情。当我们需要从互联网上批量下载大量文件时,手动一个一个去下载显然不够高效。为了解决这个问题,我们可以使用Python编写一个批量下载文件的脚本,让它自动帮我们下载文件。同时,为了避免下载过程中被网站禁止访问,我们也可以运用代理......
  • Python数据容器
    1.容器定义:容纳多份数据的数据类型。Python的数据容器可以理解为C++中的数据结构,这些数据结构的方法多为“增删改查”。容器类型:列表、元组、字符串、2.列表list列表可理解为数组,下标从0开始。定义定义代码name_list=['zhangsan','lisi','wangwu']#字......
  • 接口自动化Python+requests踩坑记录
    问题描述同一个接口,传参相同,用postman,jmeter等接口工具都能正常访问,后台也能正常返回数据,但是用requests.post()调用就会返回400jmeter传参以及响应这是一个登录接口,如图所示的传参,是可以正常登录的  postman传参以及响应可以看到,两个工具的传参不一样,但是也是同样可以正......
  • ArcPy自动绘制大量地图并设置地图要素:Python
      本文介绍基于Python语言中ArcPy模块,实现ArcMap自动批量出图,并对地图要素进行自定义批量设置的方法。1任务需求  首先,我们来明确一下本文所需实现的需求。  现有通过Python基于Excel数据加以反距离加权空间插值并掩膜图层所绘制的北京市在2019年05月18日00时至23时(其中......