用于矢量矩阵乘法的标量矢量乘法

问题描述 投票:2回答:1

是否有可以完成第三个“等式”的python(numpy)功能?

将其用作返回的lambda函数

1。向量*标量

vector*scalar

import numpy as np
a = np.array([3,4])
b = 2
print(a*b)
>>[6,8]

或作为lambda函数:

import numpy as np

def multiply():
  return lambda a,b: a*b

a = np.array([3,4])
b = 2
j = multiply()
print(j(a,b))
>>[6,8]

2。矩阵*向量

matrix*vector

import numpy as np
a = np.array([[3,4],[2,5]])
b = np.array([2,4])
print(a*b)
print()
print(np.multiply(a,b))
print()
print(a.dot(b))
print()
print(b.dot(a))
>>[[ 6 16]
>>[ 4 20]]
>>
>>[[ 6 16]
>>[ 4 20]]
>>
>>[22 24]
>>
>>[14 28]

或作为lambda函数:

import numpy as np

def multiply():
  return lambda a,b: a.dot(b)

a = np.array([[3,4],[2,5]])
b = np.array([2,4])
j = multiply()
print(j(a,b))
>>[22 24]

3。矩阵(解释为许多(2,1)-向量)*向量(解释为许多标量)或:每行向量*标量

matrix(many vectors)*vector(many scalars)

import numpy as np
a = np.array([[3,4],[2,5]])
b = np.array([2,4])
?
python arrays numpy matrix-multiplication scalar
1个回答
1
投票
import numpy as np a = np.array([[3,2], [4, 5]]) b = np.array([2, 4]) c = np.vstack((b, b)).T d = np.multiply(a,c) print(d) array([[ 6, 8], [8, 20]])
如果需要功能

def elementwisemult(a, b): b = np.vstack((b, b)).T d = np.multiply(a,b) return d

© www.soinside.com 2019 - 2024. All rights reserved.