我想知道是否可以在数值变量列表之间进行数学运算?例如,我有..
pointA = [ 22, 44, 83 ]
pointB = [ -17, 11, -25 ]
pointC = pointA - pointB
#result: [ 5, 55, 61 ]
还是我应该创建自己的函数?谢谢!
我想知道是否可以在数值变量列表之间进行数学运算?例如,我有..
pointA = [ 22, 44, 83 ]
pointB = [ -17, 11, -25 ]
pointC = pointA - pointB
#result: [ 5, 55, 61 ]
还是我应该创建自己的函数?谢谢!
安装numpy。
>>> import numpy
>>> numpy.add([ 22, 44, 83 ], [ -17, 11, -25 ])
array([ 5, 55, 58])
数组对象大多与列表兼容,但功能更强大。
>>> pointA = numpy.array([ 22, 44, 83 ])
>>> pointB = numpy.array([ -17, 11, -25 ])
>>> pointA + pointB
array([ 5, 55, 58])
>>> pointA * pointB
array([ -374, 484, -2075])
>>> pointA.dot(pointB)
-1965
支持大量其他操作、矩阵和多维数组...
这可以通过以下方式完成map
:
pointC = map(lambda p1, p2: p1 + p2, pointA, pointB)
或者,更简单地说:
from operators import add
pointC = map(add, pointA, pointB)
可能是这样的:
In [1]: def calculate(p1, p2):
...: return map(sum, zip(p1, p2))
In [2]: pointA = [ 22, 44, 83 ]
...: pointB = [ -17, 11, -25 ]
In [3]: calculate(pointA, pointB)
Out[3]: [5, 55, 58]
我一直在研究可以用于此的 Python 中的线性代数模块。它重量轻且易于使用。add()
如果您想添加两个以上的点,该方法允许您添加矩阵列表。
在这里查看:https ://github.com/jeremynealbrown/mbyn
A = [
[8, 3, 4],
[21, 3, 7],
[3, 5, 2]
]
B = [
[5, 3, 1],
[1, 9, 4],
[3, 6, 1]
]
mbyn.add([A, B])
#output
#13, 6, 5
#22, 12, 11
#6, 11, 3