python元素智能外接程序列表和其他列表
我查了一下类似的问题 但我的要复杂一点,因为我正在用另一个列表添加列表列表 我的清单如下所示python元素智能外接程序列表和其他列表,python,numpy,Python,Numpy,我查了一下类似的问题 但我的要复杂一点,因为我正在用另一个列表添加列表列表 我的清单如下所示 [[0 0.014285714 0.035600016] ,[0.014285714 0 0.038359389] ,[0.035600016 0.038359389 0]] [[0 0.014285714 0.035600016] ,[0.014285714 0 0.038359389] ,[0.035600016
[[0 0.014285714 0.035600016]
,[0.014285714 0 0.038359389]
,[0.035600016 0.038359389 0]]
[[0 0.014285714 0.035600016]
,[0.014285714 0 0.038359389]
,[0.035600016 0.038359389 0]]
把这两个加起来,结果就是3乘3的矩阵
我如何才能有效地添加这两个列表?如果您正在使用numpy矩阵,@AlexThornton有最好的答案 如果您正在处理列表,您应该执行以下操作:
summed_list = [[c+d for c,d in zip(i,j)] for i,j in zip(a,b)] #a,b are your two lists
简单的例子:
如果你正在使用numpy矩阵,@AlexThornton有最好的答案 如果您正在处理列表,您应该执行以下操作:
summed_list = [[c+d for c,d in zip(i,j)] for i,j in zip(a,b)] #a,b are your two lists
简单的例子:
如果你正在使用numpy矩阵,@AlexThornton有最好的答案 如果您正在处理列表,您应该执行以下操作:
summed_list = [[c+d for c,d in zip(i,j)] for i,j in zip(a,b)] #a,b are your two lists
简单的例子:
如果你正在使用numpy矩阵,@AlexThornton有最好的答案 如果您正在处理列表,您应该执行以下操作:
summed_list = [[c+d for c,d in zip(i,j)] for i,j in zip(a,b)] #a,b are your two lists
简单的例子:
您标记了您的问题
numpy
,因此我认为这是可以的:
import numpy as np
a = np.matrix(a)
b = np.matrix(b)
c = a + b
其中a
和b
是您的两个列表,c
是这两个列表的总和
到目前为止,最简单的方法是使用
numpy
:) 您标记了您的问题numpy
,因此我认为这是可以的:
import numpy as np
a = np.matrix(a)
b = np.matrix(b)
c = a + b
其中a
和b
是您的两个列表,c
是这两个列表的总和
到目前为止,最简单的方法是使用
numpy
:) 您标记了您的问题numpy
,因此我认为这是可以的:
import numpy as np
a = np.matrix(a)
b = np.matrix(b)
c = a + b
其中a
和b
是您的两个列表,c
是这两个列表的总和
到目前为止,最简单的方法是使用
numpy
:) 您标记了您的问题numpy
,因此我认为这是可以的:
import numpy as np
a = np.matrix(a)
b = np.matrix(b)
c = a + b
其中a
和b
是您的两个列表,c
是这两个列表的总和
到目前为止,最简单的方法是使用
numpy
:) 我可以使用numpy解决:
>>> a = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> b = [[4, 5, 6], [4, 5, 6], [4, 5, 6]]
>>> from numpy import array, sum
>>> list(array(a) + array(b))
[array([5, 7, 9]), array([5, 7, 9]), array([5, 7, 9])]
或
我可以使用numpy解决以下问题:
>>> a = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> b = [[4, 5, 6], [4, 5, 6], [4, 5, 6]]
>>> from numpy import array, sum
>>> list(array(a) + array(b))
[array([5, 7, 9]), array([5, 7, 9]), array([5, 7, 9])]
或
我可以使用numpy解决以下问题:
>>> a = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> b = [[4, 5, 6], [4, 5, 6], [4, 5, 6]]
>>> from numpy import array, sum
>>> list(array(a) + array(b))
[array([5, 7, 9]), array([5, 7, 9]), array([5, 7, 9])]
或
我可以使用numpy解决以下问题:
>>> a = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> b = [[4, 5, 6], [4, 5, 6], [4, 5, 6]]
>>> from numpy import array, sum
>>> list(array(a) + array(b))
[array([5, 7, 9]), array([5, 7, 9]), array([5, 7, 9])]
或
这里是一个使用“香草”python和递归的递归解决方案 (此解决方案适用于嵌套元组或列表)
from operator import add
def list_recur(l1, l2, op = operator.add):
if not l1:
return type(l1)([])
elif isinstance(l1[0], type(l1)):
return type(l1)([list_recur(l1[0], l2[0], op)]) + \
list_recur(l1[1:],l2[1:], op)
else:
return type(l1)([op(l1[0], l2[0])]) + \
list_recur(l1[1:], l2[1:], op)
从操作员导入添加
def list_recur(l1、l2、op=operator.add):
如果不是l1:
返回类型(l1)([]))
elif isinstance(l1[0],类型(l1)):
返回类型(l1)([列表重现(l1[0],l2[0],op)])+\
列表重复出现(l1[1:],l2[1:],op)
其他:
返回类型(l1)([op(l1[0],l2[0]))+\
列表重复出现(l1[1:],l2[1:],op)
此解决方案接受参数list1、list2以及您希望在元素方面执行的操作(默认添加)
例如,list\u recurr([[1,2,3,4,5]],[1,2,3,4,5]])
将返回[[2,4,6,8,10]
更复杂的例子也适用:
列表重复出现([1,2,3,3,3,4,1,1,3,2,3,3,3,3,4,1,3,3,3,3,4,1,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,3,4,3,3,4,3,4,3,3,4,3,4,3,4,3,3,\
x
将返回[[[[[True,[[[[True,False][]]]-][]]
`这里是一个使用“普通”python和递归的递归解决方案
(此解决方案适用于嵌套元组或列表)
from operator import add
def list_recur(l1, l2, op = operator.add):
if not l1:
return type(l1)([])
elif isinstance(l1[0], type(l1)):
return type(l1)([list_recur(l1[0], l2[0], op)]) + \
list_recur(l1[1:],l2[1:], op)
else:
return type(l1)([op(l1[0], l2[0])]) + \
list_recur(l1[1:], l2[1:], op)
从操作员导入添加
def list_recur(l1、l2、op=operator.add):
如果不是l1:
返回类型(l1)([]))
elif isinstance(l1[0],类型(l1)):
返回类型(l1)([列表重现(l1[0],l2[0],op)])+\
列表重复出现(l1[1:],l2[1:],op)
其他:
返回类型(l1)([op(l1[0],l2[0]))+\
列表重复出现(l1[1:],l2[1:],op)
此解决方案接受参数list1、list2以及您希望在元素方面执行的操作(默认添加)
例如,list\u recurr([[1,2,3,4,5]],[1,2,3,4,5]])
将返回[[2,4,6,8,10]
更复杂的例子也适用:
列表重复出现([1,2,3,3,3,4,1,1,3,2,3,3,3,3,4,1,3,3,3,3,4,1,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,3,4,3,3,4,3,4,3,3,4,3,4,3,4,3,3,\
x
将返回[[[[[True,[[[[True,False][]]]-][]]
`这里是一个使用“普通”python和递归的递归解决方案
(此解决方案适用于嵌套元组或列表)
from operator import add
def list_recur(l1, l2, op = operator.add):
if not l1:
return type(l1)([])
elif isinstance(l1[0], type(l1)):
return type(l1)([list_recur(l1[0], l2[0], op)]) + \
list_recur(l1[1:],l2[1:], op)
else:
return type(l1)([op(l1[0], l2[0])]) + \
list_recur(l1[1:], l2[1:], op)
从操作员导入添加
def list_recur(l1、l2、op=operator.add):
如果不是l1:
返回类型(l1)([]))
elif isinstance(l1[0],类型(l1)):
返回类型(l1)([列表重现(l1[0],l2[0],op)])+\
列表重复出现(l1[1:],l2[1:],op)
其他:
返回类型(l1)([op(l1[0],l2[0]))+\
列表重复出现(l1[1:],l2[1:],op)
此解决方案接受参数list1、list2以及您希望在元素方面执行的操作(默认添加)
例如,list\u recurr([[1,2,3,4,5]],[1,2,3,4,5]])
将返回[[2,4,6,8,10]
更复杂的例子也适用:
列表重复出现([1,2,3,3,3,4,1,1,3,2,3,3,3,3,4,1,3,3,3,3,4,1,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,3,4,3,3,4,3,4,3,3,4,3,4,3,4,3,3,\
x
将返回[[[[[True,[[[[True,False][]]]-][]]
`这里是一个使用“普通”python和递归的递归解决方案
(此解决方案适用于嵌套元组或列表)
from operator import add
def list_recur(l1, l2, op = operator.add):
if not l1:
return type(l1)([])
elif isinstance(l1[0], type(l1)):
return type(l1)([list_recur(l1[0], l2[0], op)]) + \
list_recur(l1[1:],l2[1:], op)
else:
return type(l1)([op(l1[0], l2[0])]) + \
list_recur(l1[1:], l2[1:], op)
从操作员导入添加
def list_recur(l1、l2、op=operator.add):
如果不是l1:
返回类型(l1)([]))
elif isinstance(l1[0],类型(l1)):
返回类型(l1)([列表重现(l1[0],l2[0],op)])+\
列表重复出现(l1[1:],l2[1:],op)
其他:
返回类型(l1)([op(l1[0],l2[0]))+\
列表重复出现(l1[1:],l2[1:],op)
此解决方案接受参数list1、list2以及您希望在元素方面执行的操作(默认添加)
例如,list\u recurr([[1,2,3,4,5]],[1,2,3,4,5]])
将返回[[2,4,6,8,10]
更复杂的例子也适用:
列表重复出现([1,2,3,3,3,4,1,1,3,2,3,3,3,3,4,1,3,3,3,3,4,1,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,3,4,3,3,4,3,4,3,3,4,3,4,3,4,3,3,\
x
将返回[[[[[True,[[[[True,False][]]]-][]]
`建议避免使用矩阵类,除非您特别需要矩阵类的注意事项。建议避免使用矩阵类,除非