多个numpy数组的点积
Dot product of multiple numpy arrays
我在 Python3 中有以下代码:
matrix = np.array([[1,2,3],
[2,3,4],
[5,3,4]])
sig_d1 = np.array([[1, 0, 0],
[0, 0, -1],
[0, -1, 0]])
sig_d2 = np.array([[1, 0, 0],
[0, 0, 1],
[0, 1, 0]])
for i in range(1,3):
product=np.dot(sig_d+i,matrix)
但是,我收到错误消息:
product = np.dot(sig_d+i,matrix.transpose())
NameError: name 'sig_d' is not defined
有人能给点支持吗?
Python 不允许您以您尝试的方式动态访问变量。最好的方法是将数组放入字典中并通过键字符串访问值。
array_dict = {'sig_d1' : sig_d1, 'sig_d2' : sig_d2}
for i in range(1,3):
product = np.dot(array_dict['sig_d{}'.format(i)], matrix)
如果您有更多数组,我建议您使用一种更智能的方式来初始化您的 array_dict
,可能是通过循环或 dict comprehension.
我在 Python3 中有以下代码:
matrix = np.array([[1,2,3],
[2,3,4],
[5,3,4]])
sig_d1 = np.array([[1, 0, 0],
[0, 0, -1],
[0, -1, 0]])
sig_d2 = np.array([[1, 0, 0],
[0, 0, 1],
[0, 1, 0]])
for i in range(1,3):
product=np.dot(sig_d+i,matrix)
但是,我收到错误消息:
product = np.dot(sig_d+i,matrix.transpose())
NameError: name 'sig_d' is not defined
有人能给点支持吗?
Python 不允许您以您尝试的方式动态访问变量。最好的方法是将数组放入字典中并通过键字符串访问值。
array_dict = {'sig_d1' : sig_d1, 'sig_d2' : sig_d2}
for i in range(1,3):
product = np.dot(array_dict['sig_d{}'.format(i)], matrix)
如果您有更多数组,我建议您使用一种更智能的方式来初始化您的 array_dict
,可能是通过循环或 dict comprehension.