Python - 求两个复数坐标的平均值
Python - find average of two complex coordinates
给定一组坐标,如何求出它们的平均值?
ip = [[100.0 - 11.3*I, 82.8], [100.0 + 11.3*I, 82.8]]
最后的结果应该是在复数的情况下,
op = ((100.0 - 11.3*I + 100.0 + 11.3*I)/2 , (82.8 + 82.8)/2))
op = (100, 82.8)
首先,要创建复数值,请使用 j
或 J
作为虚数单位(与大多数数学书籍中的 i
相反)并将其放在数字后面值,没有 *
运算符:
>>> z = 3 + 4j
>>> z
(3+4j)
然后您可以对其执行常用的数学运算:
>>> abs(z)
5.0
>>> z**2
(-7+24j)
以及仅从 cmath
module in the standard library.
中为复数定义的那些
对于两个 complex-valued 二维向量的输入,正确的语法是:
ip = [[100.0 - 11.3j, 82.8], [100.0 + 11.3j, 82.8]]
您可以直接索引该列表以获取各个组件并添加它们:
>>> (ip[0][0] + ip[1][0])/2
(100+0j)
计算平均值的更简单方法是使用 numpy
math library:
中的数组函数 .mean
>>> import numpy
>>> ip = numpy.array(ip)
>>> ip.mean(axis=0)
array([100. +0.j, 82.8+0.j])
在 SymPy 中,可以使用矩阵来紧凑地编写向量运算:
>>> ip = [[100.0 - 11.3*I, 82.8], [100.0 + 11.3*I, 82.8]]
>>> a,b=map(Matrix, ip)
>>> (a+b)/2
Matrix([
[100.0],
[ 82.8]])
>>> list(_)
[100.0, 82.8]
给定一组坐标,如何求出它们的平均值?
ip = [[100.0 - 11.3*I, 82.8], [100.0 + 11.3*I, 82.8]]
最后的结果应该是在复数的情况下,
op = ((100.0 - 11.3*I + 100.0 + 11.3*I)/2 , (82.8 + 82.8)/2))
op = (100, 82.8)
首先,要创建复数值,请使用 j
或 J
作为虚数单位(与大多数数学书籍中的 i
相反)并将其放在数字后面值,没有 *
运算符:
>>> z = 3 + 4j
>>> z
(3+4j)
然后您可以对其执行常用的数学运算:
>>> abs(z)
5.0
>>> z**2
(-7+24j)
以及仅从 cmath
module in the standard library.
对于两个 complex-valued 二维向量的输入,正确的语法是:
ip = [[100.0 - 11.3j, 82.8], [100.0 + 11.3j, 82.8]]
您可以直接索引该列表以获取各个组件并添加它们:
>>> (ip[0][0] + ip[1][0])/2
(100+0j)
计算平均值的更简单方法是使用 numpy
math library:
.mean
>>> import numpy
>>> ip = numpy.array(ip)
>>> ip.mean(axis=0)
array([100. +0.j, 82.8+0.j])
在 SymPy 中,可以使用矩阵来紧凑地编写向量运算:
>>> ip = [[100.0 - 11.3*I, 82.8], [100.0 + 11.3*I, 82.8]]
>>> a,b=map(Matrix, ip)
>>> (a+b)/2
Matrix([
[100.0],
[ 82.8]])
>>> list(_)
[100.0, 82.8]